我有一系列字母,想要通过切掉某个字母周围的字母来找到所有可能的字母组合。
C是我的特殊字母,X可以是任何字母,所以使用序列:
XCXX
所有可能的组合将是:
XCXX
XCX
XC
CXX
CX
C
是否有python函数,或者我应该从头开始编码吗?
谢谢
答案 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))]