Как избавиться от вложенности при переборе списков

Есть 10 списков, вида:

a1 = ['1','2','4']
a2 = ['a','b','d']
..
a10 = ['asd','add','fdd']

Как получить строки из этих списков, избегая вложенности?

out = []
for i in a1:
    for k in a2:
..
       for l in a10:
           res = f'{a1}__{a2} ..... {a10}'
           out.append(res) 

Ответы (1 шт):

Автор решения: Danis

используйте itertools.product

import itertools

for el in itertools.product(a1, a2, ..., a10):
    print("__".join(el))
→ Ссылка