给出一个整数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循环,但是由于某种原因,我发现该解决方案难以调试