On Jun 1, 8:28 pm, Steven D'Aprano <st...@remove-this- cybersource.com.au> wrote: > On Mon, 01 Jun 2009 17:24:49 -0700, Mensanator wrote: > > On Jun 1, 6:40 pm, Steven D'Aprano <st...@remove-this- > > cybersource.com.au> wrote: > >> On Mon, 01 Jun 2009 11:23:35 -0700, Mensanator wrote: > >> > I believe the name you're looking for is > >> > combinations_with_replacement. It is one of the features being added > >> > to 3.1 which should give all the subsets of the Cartesian Product: > > >> > permutations_with_replacement: product() > >> > combinations_with_replacement: combinations_with_replacement() > >> > permutations_without_replacement: permutations() > >> > combinations_without_replacement: combinations() > > >> What, no partitions? > > > Itertools does partitions? > > Er, no. That's why I asked "What, no partitions?" instead of saying > "Look, itertools also does partitions!" > > >>http://en.wikipedia.org/wiki/Partition_of_a_set > > > I didn't see any reference to Cartesian Product there. > > Wikipedia is the encyclopedia anyone can edit. Go right ahead and put it > in if you think it needs to be there. While you're at it, there is no > mention of Cartesian Product in any of > > http://en.wikipedia.org/wiki/Permutationshttp://en.wikipedia.org/wiki/Combinations > > http://mathworld.wolfram.com/Permutation.htmlhttp://mathworld.wolfram.com/k-Subset.html > > either. Are you sure that permutations and combinations are subsets of > the Cartesian Product?
Didn't notice this before - it says so in the docs! itertools.product(*iterables[, repeat])¶ Cartesian product of input iterables. The code for permutations() can be also expressed as a subsequence of product(), filtered to exclude entries with repeated elements (those from the same position in the input pool): The code for combinations() can be also expressed as a subsequence of permutations() after filtering entries where the elements are not in sorted order (according to their position in the input pool): > > -- > Steven -- http://mail.python.org/mailman/listinfo/python-list