Python 给定长度的输入组合或排列

Python 给定长度的输入组合或排列,python,python-2.7,permutation,Python,Python 2.7,Permutation,我一直在试图计算两个字符(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

我一直在试图计算两个字符(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']