给出多个变量的所有可能列表的python列表

时间:2014-12-21 03:26:29

标签: python

说我有['xyz']。我想要所有可能的列表,因为x,y和z可以取值' a'和' b'。所以结果将是[aaa], [aab], [aba], [abb], [baa], [bab], [bba], [bbb]。我想在没有先知道会有多少未知变量或可能值的情况下这样做。

有一种优雅而简单的方法吗?

最终结果应该返回一个列表列表:

[[aaa], [aab], [aba], [abb], [baa], [bab], [bba], [bbb]]

1 个答案:

答案 0 :(得分:0)

您可以使用itertools.product,并使用.join将它生成的元组转换为字符串。

import itertools

[ ''.join(x) for x in itertools.product(['a','b'],repeat=3) ]

['aaa', 'aab', 'aba', 'abb', 'baa', 'bab', 'bba', 'bbb']