I was able to google a recipe for a k_permutations generator, such that i can write:
x = range(1, 4) # (say) [combi for combi in k_permutations(x, 3)] => [[1, 1, 1], [1, 1, 2], [1, 1, 3], [1, 2, 1], [1, 2, 2], [1, 2, 3], [1, 3, 1], [1, 3, 2], [1, 3, 3], [2, 1, 1], [2, 1, 2], [2, 1, 3], [2, 2, 1], [2, 2, 2], [2, 2, 3], [2, 3, 1], [2, 3, 2], [2, 3, 3], [3, 1, 1], [3, 1, 2], [3, 1, 3], [3, 2, 1], [3, 2, 2], [3, 2, 3], [3, 3, 1], [3, 3, 2], [3, 3, 3]] but what i really want is the above without repetition, i.e.: [combi for combi in k_permutations_without_repetitions(x, 3)] => [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]] For smallish lists, it's no problem to generate the list as follows: no_reps_combis = [combi for combi in k_permutations(x, 3) if \ len(set(combi)) == 3] but i'm sure there must be a way to do this as a pure generator, just that i wouldn't have a clue how to go about it. Help please, Python Gods! :) Apologies in advance if I have got my terminology wrong and have been googling the wrong stuff and therefore coming up blank. -- http://mail.python.org/mailman/listinfo/python-list