python – 最大数字组合
发布时间:2020-12-20 12:41:43 所属栏目:Python 来源:网络整理
导读:我正在尝试使用0到9之间的所有数字生成一组四个数字中所有可能数字组合的列表. 我越来越接近,但输出并没有显示从0000一直到9999的所有可能组合. 有关为什么以下代码丢弃某些组合的任何线索? def permgen(items,n): if n==0: yield [] else: for i in range(
我正在尝试使用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) 解决方法
这一行:
for cc in permgen(items[:i]+items[i+1:],n-1): 你基本上是说“得到一个数字,而不是添加另一个不同于ir的数字,重复n次,然后返回这些数字的列表.这将给你数字,其中没有数字出现多次.如果你改变那一行: for cc in permgen(items,n-1): 然后你得到所有的组合. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |