用 python 中所有可能配对的列表替换一组整数上的嵌套 for 循环

Replace nested for loops over a set of integers with list of all possible pairings in python

我有以下内容:

for i1 in range(6):
    for i2 in range(6):
        for i3 in range(6):
            for i4 in range(6):
                # do stuff

我想将其替换为:

for i in possibilities:
    # do stuff

哪里

possibilities = [[0,0,0,0],[0,0,0,1],...,[5,5,5,5]]

如何为任意数量的嵌套循环构造此列表? itertools 是正确的选择吗?

是的,您可以使用 itertools.product 来实现

import itertools
r = range(6)
for i in itertools.product(r,r,r,r):
    print(i)

这将打印

(0, 0, 0, 0)
(0, 0, 0, 1)
(0, 0, 0, 2)
(0, 0, 0, 3)
(0, 0, 0, 4)
(0, 0, 0, 5)
(0, 0, 1, 0)
(0, 0, 1, 1)
...
(5, 5, 5, 4)
(5, 5, 5, 5)