Python:用于生成此组合的itertools?

时间:2015-10-01 05:48:23

标签: python itertools

是否有一个itertools函数会在此组合中生成x

for op1 in ['+','-','*']:
    for op2 in ['+','-','*']:
        for op3 in ['+','-','*']:
            for op4 in ['+','-','*']:
                x = [op1,op2,op3,op4]

1 个答案:

答案 0 :(得分:3)

您可以使用itertools.product

>>> from itertools import product
>>> list(product(['+','-','*'],repeat=4))
[('+', '+', '+', '+'), ('+', '+', '+', '-'), ('+', '+', '+', '*'), ('+', '+', '-', '+'), ('+', '+', '-', '-'), ('+', '+', '-', '*'), ('+', '+', '*', '+'), ('+', '+', '*', '-'), ('+', '+', '*', '*'), ('+', '-', '+', '+'), ('+', '-', '+', '-'), ('+', '-', '+', '*'), ('+', '-', '-', '+'), ('+', '-', '-', '-'), ('+', '-', '-', '*'), ('+', '-', '*', '+'), ('+', '-', '*', '-'), ('+', '-', '*', '*'), ('+', '*', '+', '+'), ('+', '*', '+', '-'), ('+', '*', '+', '*'), ('+', '*', '-', '+'), ('+', '*', '-', '-'), ('+', '*', '-', '*'), ('+', '*', '*', '+'), ('+', '*', '*', '-'), ('+', '*', '*', '*'), ('-', '+', '+', '+'), ('-', '+', '+', '-'), ('-', '+', '+', '*'), ('-', '+', '-', '+'), ('-', '+', '-', '-'), ('-', '+', '-', '*'), ('-', '+', '*', '+'), ('-', '+', '*', '-'), ('-', '+', '*', '*'), ('-', '-', '+', '+'), ('-', '-', '+', '-'), ('-', '-', '+', '*'), ('-', '-', '-', '+'), ('-', '-', '-', '-'), ('-', '-', '-', '*'), ('-', '-', '*', '+'), ('-', '-', '*', '-'), ('-', '-', '*', '*'), ('-', '*', '+', '+'), ('-', '*', '+', '-'), ('-', '*', '+', '*'), ('-', '*', '-', '+'), ('-', '*', '-', '-'), ('-', '*', '-', '*'), ('-', '*', '*', '+'), ('-', '*', '*', '-'), ('-', '*', '*', '*'), ('*', '+', '+', '+'), ('*', '+', '+', '-'), ('*', '+', '+', '*'), ('*', '+', '-', '+'), ('*', '+', '-', '-'), ('*', '+', '-', '*'), ('*', '+', '*', '+'), ('*', '+', '*', '-'), ('*', '+', '*', '*'), ('*', '-', '+', '+'), ('*', '-', '+', '-'), ('*', '-', '+', '*'), ('*', '-', '-', '+'), ('*', '-', '-', '-'), ('*', '-', '-', '*'), ('*', '-', '*', '+'), ('*', '-', '*', '-'), ('*', '-', '*', '*'), ('*', '*', '+', '+'), ('*', '*', '+', '-'), ('*', '*', '+', '*'), ('*', '*', '-', '+'), ('*', '*', '-', '-'), ('*', '*', '-', '*'), ('*', '*', '*', '+'), ('*', '*', '*', '-'), ('*', '*', '*', '*')]