有很多示例,如果l <= n,如何获取长度为n的n个项的所有组合。但是如何获得长度为l的n个项(f.i.位数)的所有组合,例如n 实现它不是问题,但是我想可以使用itertools来实现。我找不到方法。n = 3 ([0,1,2])
l = 5
sequence to get:
00000
00001
00002
00010
...
22222
答案 0 :(得分:1)
从itertools文档中:
product(range(2),repeat = 3)-> 00000101010110100101110111
因此,对于您的情况,代码将是
itertools.product(range(3), repeat=5)
答案 1 :(得分:0)
由于此集合本质上只是一个三进制数系统,因此我们可以使用here中的三元函数
def ternary (n):
if n == 0:
return '0'
nums = []
while n:
n, r = divmod(n, 3)
nums.append(str(r))
return ''.join(reversed(nums))
您可以将其视为数组,并通过如下所示的for循环对其进行迭代:
for i in range(3**5):
print(ternary(i))