Python-Itertools中独特组合的变化

时间:2018-09-11 09:18:35

标签: python combinations itertools

给出一个整数n,我需要生成一个类似于下面的序列。

是否有combinations的应用程序可以在代码中没有双循环的情况下产生相同的效果(感觉上不太像Python)?

代码

n = 5
sequence = [1] * n
print(sequence)
for i in range(n-1):
    for j in range(n-i-1):
        sequence[n-j-1] += 1
        print(sequence)

输出顺序

上面的代码产生:

[1, 1, 1, 1, 1]
[1, 1, 1, 1, 2]
[1, 1, 1, 2, 2]
[1, 1, 2, 2, 2]
[1, 2, 2, 2, 2]
[1, 2, 2, 2, 3]
[1, 2, 2, 3, 3]
[1, 2, 3, 3, 3]
[1, 2, 3, 3, 4]
[1, 2, 3, 4, 4]
[1, 2, 3, 4, 5]

样式注释

我可以将double-for重构为具有2个索引i,j的单while循环,但是由于某种原因,我发现该解决方案难以调试

0 个答案:

没有答案