probably there should be a class Permutations() which organizes possible permutations. a lists of lists is too confusing and not general enough Permutations() can still take a list of lists as a constructor.