List.combinations and List.permutations

first draft