python - 对于给定的长度,输入的组合或排列

标签 python python-2.7 permutation

我一直在尝试计算给定序列长度的两个字符(E 和 L)的所有排列。如果我 import itertools 并运行 itertools.permutation('LE', 8) 我没有输出,显然如果我只通过 itertools.permutation('LE' ) 我将得到两个长的排列,即 LE 和 EL。有没有一种运行排列的方法,使我有参数 'LE' 和一个数字,比如 3,然后会导致:

LLL
EEE
LLE
EEL
LEE
ELL
ELE
LEL

提前致谢。

最佳答案

你想要的是笛卡尔积 LE × LE × LE

itertools.productrepeat 参数一起使用:

In [60]: list(itertools.product('LE', repeat=3))
Out[60]:
[('L', 'L', 'L'),
 ('L', 'L', 'E'),
 ('L', 'E', 'L'),
 ('L', 'E', 'E'),
 ('E', 'L', 'L'),
 ('E', 'L', 'E'),
 ('E', 'E', 'L'),
 ('E', 'E', 'E')]

In [62]: [''.join(p) for p in itertools.product('LE', repeat=3)]
Out[62]: ['LLL', 'LLE', 'LEL', 'LEE', 'ELL', 'ELE', 'EEL', 'EEE']

关于python - 对于给定的长度,输入的组合或排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15455442/

相关文章:

algorithm - 受约束的 N-Rook 解决方案数量

python - 如何计算两列之间的模糊比?

python - 导入错误default_collat​​e未定义

python - 无法将 Pandas 导入 IPython

python - 通过 Tkinter GUI 打开 txt 文件

algorithm - 子集和集封面

ruby - 从几个哈希生成每个组合

python - 如果包含在循环中,字典是否会被清除

python - 将 SQLAlchemy 继承关系重新映射到不同的 postgres 模式

python - 字符串和列表的连接