Python设置相邻字母的组合

时间:2012-10-08 16:18:40

标签: python permutation combinations

我有一系列字母,想要通过切掉某个字母周围的字母来找到所有可能的字母组合。

C是我的特殊字母,X可以是任何字母,所以使用序列:

XCXX

所有可能的组合将是:

XCXX
XCX
XC
CXX
CX
C

是否有python函数,或者我应该从头开始编码吗?

谢谢

3 个答案:

答案 0 :(得分:4)

我会像这样从头开始编码:

def cuts(s,i): 
   return [ s[a:b] for a in range(i+1) for b in range(i+1,len(s)+1)]

其中s是字符串,i是"特殊字母"的索引。在s。 示例:

>>> cuts('XCXX', 1)
['XC', 'XCX', 'XCXX', 'C', 'CX', 'CXX']

答案 1 :(得分:3)

尝试计算特殊元素C之前和之后的元素数量。然后,您的组合由这两个数字唯一定义,您可以使用字符串切片来获取特定的数字。

答案 2 :(得分:0)

不,但你可以做一个单行。

data = "XCXX"
cIndex = data.index("C")
permutations = [data[i:j+1] for i in range(cIndex+1) 
        for j in range(cIndex, len(data))]