2012-10-08 53 views
3

我有一个字母序列,并希望通过切断某个字母周围的字母来查找可能的所有字母组合。Python组合的相邻字母

C是我在这里的特殊文字和X可以是任何东西,所以用一个序列:

XCXX 

因此,所有可能的组合是:

XCXX 
XCX 
XC 
CXX 
CX 
C 

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

谢谢

回答

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是字符串,is你的“专函”的指标。 例如:

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

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

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))]