from itertools import product teams = ['india', 'australia', 'new zealand'] word_and = ['and'] tmp = '%s %s %s' items = [teams, word_and, teams] print(list(tmp % a for a in list(product(*items))))
印刷品:
['india and india', 'india and australia', 'india and new zealand', 'australia and india', 'australia and australia', 'australia and new zealand', 'new zealand and india', 'new zealand and australia', 'new zealand and new zealand']
如何:
http://pythonfiddle.com/product-without-matching- duplicates
你应该使用itertools.combinations这样的
itertools.combinations
>>> from itertools import combinations >>> teams = ['india', 'australia', 'new zealand'] >>> [" and ".join(items) for items in combinations(teams, r=2)] ['india and australia', 'india and new zealand', 'australia and new zealand']
但是对于这种简单的情况,您可以运行两个循环,如下所示
>>> ["%s and %s" % (t1, t2) for i, t1 in enumerate(teams) for t2 in teams[i + 1:]] ['india and australia', 'india and new zealand', 'australia and new zealand']