- def xcombination(seq,length):
-
if not length:
-
yield []
-
else:
-
for i in xrange(len(seq)):
-
for result in xcombination(seq[i+1:],length-1):
-
yield [seq[i]]+result
-
-
-
comb=xcombination("ABCDE",3)
-
print list(comb)
每一次递归到底的时候的时候返回一个空列表[],
第一次递归的倒数第二层是 [‘C’]+[],生成['C'],返回上一层执行['B']+['C'],生成['B','C'],向上返回,执行['A']+['B','C'],生成['A','B','C']。依次类推。