17
a = [1]
b = [2,3]
c = [4,5,6]

d = [a,b,c]


for x0 in d[0]:
    for x1 in d[1]:
        for x2 in d[2]:
            print(x0,x1,x2)

Result:

1 2 4
1 2 5
1 2 6
1 3 4
1 3 5
1 3 6

Perfect, now my question is how to define this to function, considering ofcourse there could be more lists with values. The idea is to get function, which would dynamicaly produce same result.

Is there a way to explain to python: "do 8 nested loops for example"?

1 Answer 1

23

You can use itertools to calculate the products for you and can use the * operator to convert your list into arguments for the itertools.product() function.

import itertools

a = [1]
b = [2,3]
c = [4,5,6]

args = [a,b,c]

for combination in itertools.product(*args):
    print combination

Output is

(1, 2, 4)
(1, 2, 5)
(1, 2, 6)
(1, 3, 4)
(1, 3, 5)
(1, 3, 6)
Sign up to request clarification or add additional context in comments.

1 Comment

Very great solution. I appreciate it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.