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

我一直在尝试计算给定序列长度下两个字符(E和L)的所有排列.如果我导入itertools并运行itertools.permutation(‘LE’,8),我将没有任何输出,显然,如果仅通过itertools.permutation(‘LE’),我将得到两个很长的排列,即LE和EL.有没有一种以这样的方式运行排列的方式,即我将拥有参数“ LE”和一个数字(例如3),结果将是:

LLL
EEE
LLE
EEL
LEE
ELL
ELE
LEL

提前致谢.

解决方法:

您想要的是笛卡尔积LE×LE×LE.

将itertools.product与repeat参数一起使用:

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']
上一篇:567. Permutation in String


下一篇:567. Permutation in String