без какой-либо библиотеки, для цикла:
l= [1,3,5]
print (list("a_{}{}".format(*x) for x in list((x,y) for x in l for y in l)))
вывод:
['a_11', 'a_13', 'a_15', 'a_31', 'a_33', 'a_35', 'a_51', 'a_53', 'a_55']
с itertools:
from itertools import product
l= [1,3,5]
print (list("a_{}{}".format(*x) for x in list(product(l,repeat = 2))))
вывод:
['a_11', 'a_13', 'a_15', 'a_31', 'a_33', 'a_35', 'a_51', 'a_53', 'a_55']
ПРИМЕЧАНИЕ:
list((x,y) for x in l for y in l)
# equivalent to:
list(product(l,repeat = 2))
itertools.product ()
Этот инструмент вычисляетдекартово произведение входных итераций.Это эквивалентно вложенным циклам for.Например, product (A, B) возвращает то же самое, что и ((x, y) для x в A для y в B) .