Ways to generate every possible combination of a list (AKA permutations, combinatorics?):