如何压扁大型循环堆栈?

Ale*_*lan 2 python iteration loops

假设我想得到三个二进制数字的所有可能组合,即:

0,0,0
0,0,1
0,1,0
0,1,1
1,0,0
1,0,1
1,1,0
1,1,1
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

p = []
for a in range(2):
    for b in range(2):
        for c in range(2):
           p.append([a,b,c])

print p
Run Code Online (Sandbox Code Playgroud)

但是,如果我想定义一个返回n个二进制数字的可能性的函数呢?即如何动态堆叠for循环?

Dan*_*nra 5

from itertools import product
product(range(2), repeat=3)
Run Code Online (Sandbox Code Playgroud)