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

标签 python algorithm permutation

例如,

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

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

应该返回:

*, *
*, +
+, *
+, +

另一个例子是:

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

我该怎么做?

最佳答案

使用itertool.product。你要的是 cartesian product .

例子

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

关于python - 如何根据给定字符和长度生成排列列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41667665/

相关文章:

python - Pandas 数据帧 : complete spec for __getitem__()?

algorithm - 给定节点数和边数,找到强连接的最大节点数

c - 使用交替的最小值和最大值对数组进行排序

java - 如何将每个 Collection 的项目与另一个 Collection 的项目关联起来?

python - 在 Django 中更改表名

python - 将文本元组读入 Pandas 数据框

java - 域模型的版本控制

Python itertools 多处理

arrays - 从一组属性重建位序列

Python pandas plot 散点日期时间错误