例如对于 l=[a,b,c,d], 则产生,
a, b, c, d, (a,b), (a,c), ... , (b,c,d),(a,b,c,d)
这样行不:
def perm(items, n=None):
if n is None:
n = len(items)
for i in range(len(items)):
v = items[i:i+1]
if n == 1:
yield v
else:
for p in perm(items[i+1:], n-1):
yield v + p
def all_perm(items):
result = []
for i in xrange(len(items)):
result += perm(items, i+1)
return result
print all_perm([1,2,3])
运行的结果是:[[1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]
--
Best Regards,
Leo Jay
On 2月9日, 下午6时05分, july <julyzerg...@gmail.com> wrote: