我希望从字符串中生成可能的排列,以使排列仅发生在固定位置
示例字符串-'ABC|DE|F'
预期结果:
ABCE
ABCF
ABDE
ABDF
您可以读取示例字符串,因为位置0和1没有置换,而位置3和4可以分别具有2。让我知道是否需要进一步澄清。谢谢
编辑-C和D不能同时出现。 E和F相同
答案 0 :(得分:0)
我认为这就是您要寻找的。我使用正则表达式为每个位置形成可能的字母列表,然后生成了字符串。
from re import search
def bkt(l, s=""):
if not l:
print(s)
else:
for i in l[0]:
bkt(l[1:], s+i)
string = 'ABC|DE|F'
l = []
while string:
find = search("[A-Z](\|[A-Z])+|[A-Z]", string)
l.append(string[find.span()[0]:find.span()[1]].split("|"))
string = string[find.span()[1]:]
bkt(l)