16 lines
388 B
Python
16 lines
388 B
Python
from itertools import combinations
|
|
|
|
def partitions(*args):
|
|
def p(s, *args):
|
|
if not args: return [[]]
|
|
res = []
|
|
for c in combinations(s, args[0]):
|
|
s0 = [x for x in s if x not in c]
|
|
for r in p(s0, *args[1:]):
|
|
res.append([c] + r)
|
|
return res
|
|
s = range(sum(args))
|
|
return p(s, *args)
|
|
|
|
print partitions(2, 0, 2)
|