我正在尝试使用0到9之间的所有数字生成一组四个数字中所有可能数字组合的列表.
我越来越接近,但输出并没有显示从0000一直到9999的所有可能组合.
有关为什么以下代码丢弃某些组合的任何线索?
def permgen(items, n):
if n==0: yield []
else:
for i in range(len(items)):
for cc in permgen(items[:i]+items[i+1:],n-1):
yield [items[i]]+cc
if __name__=="__main__":
for c in permgen(['0','1','2','3','4','5','6','7','8','9'],4): print ''.join(c)
Nad*_*mli 12
如果你有python 2.6,为什么不使用itertools.combinations?
from itertools import combinations
combinations(range(10), 4)
Run Code Online (Sandbox Code Playgroud)