Began versioning.
[poker.git] / combinations.py
1 from __future__ import generators
2
3 def xcombinations(items, n):
4     if n==0: yield []
5     else:
6         for i in xrange(len(items)):
7             for cc in xcombinations(items[:i]+items[i+1:],n-1):
8                 yield [items[i]]+cc
9
10 def xuniqueCombinations(items, n):
11     if n==0: yield []
12     else:
13         for i in xrange(len(items)):
14             for cc in xuniqueCombinations(items[i+1:],n-1):
15                 yield [items[i]]+cc
16             
17 def xselections(items, n):
18     if n==0: yield []
19     else:
20         for i in xrange(len(items)):
21             for ss in xselections(items, n-1):
22                 yield [items[i]]+ss
23
24 def xpermutations(items):
25     return xcombinations(items, len(items))
26