Python 如何根据给定的字符和长度生成排列列表?

Python 如何根据给定的字符和长度生成排列列表?,python,algorithm,permutation,Python,Algorithm,Permutation,比如说, 我有一个要生成排列的字符列表,例如['*','+'],还有一个要生成排列的长度,例如2。换句话说,我想找到所提供列表的所有组合,直到所提供的长度。对generatePermutations的调用可能如下所示 generatePermutations(['*', '+'], 2) 应返回: *, * *, + +, * +, + 另一个例子是: generatePermutations(['*', '+'], 3) *, *, * *, *, + *, +, + *, +, * +,

比如说,

我有一个要生成排列的字符列表,例如['*','+'],还有一个要生成排列的长度,例如2。换句话说,我想找到所提供列表的所有组合,直到所提供的长度。对generatePermutations的调用可能如下所示

generatePermutations(['*', '+'], 2)
应返回:

*, *
*, +
+, *
+, +
另一个例子是:

generatePermutations(['*', '+'], 3)
*, *, *
*, *, +
*, +, +
*, +, *
+, *, +
+, *, *
+, +, *
+, +, +

我该怎么做呢?

使用
itertool.product
。你所要求的是最简单的

例子

>>> list(itertools.product(['*', '+'], repeat=2))
[('*', '*'), ('*', '+'), ('+', '*'), ('+', '+')]
>>> list(itertools.product(['*', '+'], repeat=3))
[('*', '*', '*'), ('*', '*', '+'), ('*', '+', '*'), ('*', '+', '+'), ('+', '*', '*'), ('+', '*', '+'), ('+', '+', '*'), ('+', '+', '+')]

使用
itertool.product
。你所要求的是最简单的

例子

>>> list(itertools.product(['*', '+'], repeat=2))
[('*', '*'), ('*', '+'), ('+', '*'), ('+', '+')]
>>> list(itertools.product(['*', '+'], repeat=3))
[('*', '*', '*'), ('*', '*', '+'), ('*', '+', '*'), ('*', '+', '+'), ('+', '*', '*'), ('+', '*', '+'), ('+', '+', '*'), ('+', '+', '+')]

你是怎么做到的?发生了什么事?看看
itertools
中的
product()
。你是怎么做到的?发生了什么事?看看
itertools
中的
product()
。这正是我想要的。由于某种原因,它没有在API上跳出来。谢谢这正是我想要的。由于某种原因,它没有在API上跳出来。谢谢