Python 生成所有可能的字符串组合

Python 生成所有可能的字符串组合,python,python-3.x,itertools,Python,Python 3.x,Itertools,我正在尝试打印两个字符串的所有组合 attributes = "old green".split() persons = "car bike".split() 我所期望的是: old car old bike green car green bike 到目前为止,我所尝试的: from itertools import product attributes = "old green".split() persons = "car bike".split() print([list(z

我正在尝试打印两个字符串的所有组合

attributes = "old green".split()
persons = "car bike".split() 
我所期望的是:

old car
old bike
green car
green bike
到目前为止,我所尝试的:

from itertools import product

attributes = "old green".split()
persons = "car bike".split() 

print([list(zip(attributes, p)) for p in product(persons,repeat=1)]) 

您可以使用列表来完成此操作。如果练习到此结束,则此操作有效。如果你希望在某个时候添加另一个单词列表,那么你需要一个不同的方法

[elem + ' ' + elem2 for elem in attributes for elem2 in persons]

您必须将
人员
属性
传递给
产品

>>> [p for p in product(attributes, persons)]
[('old', 'car'), ('old', 'bike'), ('green', 'car'), ('green', 'bike')]
然后连接这些字符串:

>>> [' '.join(p) for p in product(attributes, persons)]
['old car', 'old bike', 'green car', 'green bike']
如果要单独打印,可以使用
for
-循环,而不是列表:

for p in product(attributes, persons):
    print(' '.join(p))

您可以使用两个for循环,如:

attributes = ['old', 'green']
persons = ['car', 'bike']
for x in attributes:
    for y in persons:
        print x, y
输出:

old car
old bike
green car
green bike

在这个例子中,你认为什么是输入?话?仅由空格分隔?输入可以采取什么形式?具体点。告诉我们,你的尝试有什么问题?你遇到了什么问题?你是怎么修的?你读了什么文件?