Python 熊猫-在固定位置生成字符串置换

Python 熊猫-在固定位置生成字符串置换,python,pandas,Python,Pandas,我希望从字符串生成可能的置换,这样置换只发生在固定位置 示例字符串-“ABC | DE | F” 预期成果: ABCE ABCF ABDE ABDF 您可以读取示例字符串,因为位置0和1没有排列,而位置3和4可以各有2个。如果需要进一步澄清,请告诉我。谢谢 编辑-C和D不能同时出现。E和F也是一样,我想这就是你想要的。我使用正则表达式为每个位置形成可能的字母列表,然后生成字符串 from re import search def bkt(l, s=""): if n

我希望从字符串生成可能的置换,这样置换只发生在固定位置

示例字符串-
“ABC | DE | F”

预期成果:

ABCE
ABCF
ABDE
ABDF
您可以读取示例字符串,因为位置0和1没有排列,而位置3和4可以各有2个。如果需要进一步澄清,请告诉我。谢谢


编辑-C和D不能同时出现。E和F也是一样,我想这就是你想要的。我使用正则表达式为每个位置形成可能的字母列表,然后生成字符串

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)

C
D
不应该同时存在,这也是一条规则吗?因为,我知道结果中不包括ABCD。你能澄清一下逻辑吗?现在还不清楚您要寻找的规则是什么,您可以查看它,它允许您生成正则表达式的所有可能匹配项。在你的情况下,它将产生你预期的结果。@seyi-是的,这是正确的。问题是什么?请看。