gpt4 book ai didi

python - 动态嵌套循环-递归

转载 作者:行者123 更新时间:2023-12-02 19:19:02 25 4
gpt4 key购买 nike

我想生成一个数字列表,其中的数字按升序排列。

for x in range(1,10):
for y in range(x,10):
for z in range(y,10):
print(x,y,z)

我是否可以将其转换为递归,以便我可以改变嵌套深度?

注释:

在我的应用程序中,除了打印之外,我还有其他操作,我希望将打印语句的负担降至最低。

我知道 itertools.product并且它不适合我的目的,因为我必须稍后删除不必要的组合。

由于同样的原因生成所有 n数字并删除不必要的数字不会起作用

谢谢

最佳答案

您需要itertools.combinations_with_replacement()

>>> import itertools
>>> list(itertools.combinations_with_replacement(range(1, 10), 2))
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (2, 7), (2, 8), (2, 9), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9), (4, 4), (4, 5), (4, 6), (4, 7), (4, 8), (4, 9), (5, 5), (5, 6), (5, 7), (5, 8), (5, 9), (6, 6), (6, 7), (6, 8), (6, 9), (7, 7), (7, 8), (7, 9), (8, 8), (8, 9), (9, 9)]

>>> list(itertools.combinations_with_replacement(range(1, 10), 3))
[(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 1, 4), (1, 1, 5), (1, 1, 6), (1, 1, 7), (1, 1, 8), (1, 1, 9), (1, 2, 2), (1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 2, 6), (1, 2, 7), (1, 2, 8), (1, 2, 9), (1, 3, 3), (1, 3, 4), (1, 3, 5), (1, 3, 6), (1, 3, 7), (1, 3, 8), (1, 3, 9), (1, 4, 4), (1, 4, 5), (1, 4, 6), (1, 4, 7), (1, 4, 8), (1, 4, 9), (1, 5, 5), (1, 5, 6), (1, 5, 7), (1, 5, 8), (1, 5, 9), (1, 6, 6), (1, 6, 7), (1, 6, 8), (1, 6, 9), (1, 7, 7), (1, 7, 8), (1, 7, 9), (1, 8, 8), (1, 8, 9), (1, 9, 9), (2, 2, 2), (2, 2, 3), (2, 2, 4), (2, 2, 5), (2, 2, 6), (2, 2, 7), (2, 2, 8), (2, 2, 9), (2, 3, 3), (2, 3, 4), (2, 3, 5), (2, 3, 6), (2, 3, 7), (2, 3, 8), (2, 3, 9), (2, 4, 4), (2, 4, 5), (2, 4, 6), (2, 4, 7), (2, 4, 8), (2, 4, 9), (2, 5, 5), (2, 5, 6), (2, 5, 7), (2, 5, 8), (2, 5, 9), (2, 6, 6), (2, 6, 7), (2, 6, 8), (2, 6, 9), (2, 7, 7), (2, 7, 8), (2, 7, 9), (2, 8, 8), (2, 8, 9), (2, 9, 9), (3, 3, 3), (3, 3, 4), (3, 3, 5), (3, 3, 6), (3, 3, 7), (3, 3, 8), (3, 3, 9), (3, 4, 4), (3, 4, 5), (3, 4, 6), (3, 4, 7), (3, 4, 8), (3, 4, 9), (3, 5, 5), (3, 5, 6), (3, 5, 7), (3, 5, 8), (3, 5, 9), (3, 6, 6), (3, 6, 7), (3, 6, 8), (3, 6, 9), (3, 7, 7), (3, 7, 8), (3, 7, 9), (3, 8, 8), (3, 8, 9), (3, 9, 9), (4, 4, 4), (4, 4, 5), (4, 4, 6), (4, 4, 7), (4, 4, 8), (4, 4, 9), (4, 5, 5), (4, 5, 6), (4, 5, 7), (4, 5, 8), (4, 5, 9), (4, 6, 6), (4, 6, 7), (4, 6, 8), (4, 6, 9), (4, 7, 7), (4, 7, 8), (4, 7, 9), (4, 8, 8), (4, 8, 9), (4, 9, 9), (5, 5, 5), (5, 5, 6), (5, 5, 7), (5, 5, 8), (5, 5, 9), (5, 6, 6), (5, 6, 7), (5, 6, 8), (5, 6, 9), (5, 7, 7), (5, 7, 8), (5, 7, 9), (5, 8, 8), (5, 8, 9), (5, 9, 9), (6, 6, 6), (6, 6, 7), (6, 6, 8), (6, 6, 9), (6, 7, 7), (6, 7, 8), (6, 7, 9), (6, 8, 8), (6, 8, 9), (6, 9, 9), (7, 7, 7), (7, 7, 8), (7, 7, 9), (7, 8, 8), (7, 8, 9), (7, 9, 9), (8, 8, 8), (8, 8, 9), (8, 9, 9), (9, 9, 9)]

关于python - 动态嵌套循环-递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59550304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com