繁体   English   中英

使用itertools生成所有n位数字,范围在1位数字范围内

[英]Generate all n digit numbers using itertools, with bounds on range of 1st digit

我想生成所有n位数字,以便第一个数字从1到7,其余数字可以在0到9之间。

我为通用的7位数生成器编写了生成器,但是我不知道如何限制第一个数字只到7位。

import itertools
roll = []
for i in itertools.product([str(i) for i in xrange(1,10)], repeat=7):
    roll.append(''.join(i))
print roll

这是一个可行的解决方案。 第一步是创建一个6位数字。 然后,我在1到7之间的所有数字前加上前缀,并将其附加到roll

roll = []
for i in itertools.product([str(j) for j in xrange(1,10)], repeat=6):
    roll += [str(j)+''.join(i) for j in xrange(1,8)]
print roll

注意,根本不需要itertools来生成此序列,一个简单的单行代码就足够了:

roll = [str(i) for i in xrange(1000000, 8000000)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM