Now using itertools
Procedural
Delete
Now using itertools
Change class interface add iterator method
Add iterator method
Returns tuples of sets
Refactor to procedural