加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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):

然后你得到所有的组合.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读