Я думаю, что вы ищете продукт двух списков, а не перестановок:
#!/usr/bin/env python
import itertools
list1=['square','circle','triangle']
list2=['red','green']
for shape,color in itertools.product(list1,list2):
print(shape+color)
выходы
squarered
squaregreen
circlered
circlegreen
trianglered
trianglegreen
Если вы хотите и squarered
, и redsquare
, то вы можете сделать что-то вроде этого:
for pair in itertools.product(list1,list2):
for a,b in itertools.permutations(pair,2):
print(a+b)
или, чтобы составить список:
l=[a+b for pair in itertools.product(list1,list2)
for a,b in itertools.permutations(pair,2)]
print(l)
выход
['squarered', 'redsquare', 'squaregreen', 'greensquare', 'circlered', 'redcircle', 'circlegreen', 'greencircle', 'trianglered', 'redtriangle', 'trianglegreen', 'greentriangle']