使用itertools.product()
和然後過濾出任何相同的對:
from itertools import product
[' '.join([a, b]) for a, b in product(list1, list2) if a != b]
演示:
>>> from pprint import pprint
>>> from itertools import product
>>> list1 = ['hi', 'state', 'California', 'usa']
>>> list2 = ['moon', 'sun', 'hi', 'flower']
>>> [' '.join([a, b]) for a, b in product(list1, list2) if a != b]
['hi moon', 'hi sun', 'hi flower', 'state moon', 'state sun', 'state hi', 'state flower', 'California moon', 'California sun', 'California hi', 'California flower', 'usa moon', 'usa sun', 'usa hi', 'usa flower']
>>> pprint(_)
['hi moon',
'hi sun',
'hi flower',
'state moon',
'state sun',
'state hi',
'state flower',
'California moon',
'California sun',
'California hi',
'California flower',
'usa moon',
'usa sun',
'usa hi',
'usa flower']