Python字符串拆分组合

Python字符串拆分组合,python,string,combinations,Python,String,Combinations,我有一个类似于123[4-6][1-2]的字符串,我想要一个函数,它可以为我提供包含所有组合的列表: ['12341', '12342', '12351', '12352', '12361', '12362'] 输入字符串可以是一个类似于[12-45]888[1-2]76[0-9]的值,我希望Python中的函数能够为我提供包含所有组合的列表。使用regex查找范围,使用itertools.product查找所有可能性 import re from itertools import produ

我有一个类似于
123[4-6][1-2]
的字符串,我想要一个函数,它可以为我提供包含所有组合的列表:

['12341', '12342', '12351', '12352', '12361', '12362']

输入字符串可以是一个类似于
[12-45]888[1-2]76[0-9]
的值,我希望Python中的函数能够为我提供包含所有组合的列表。

使用regex查找范围,使用
itertools.product
查找所有可能性

import re
from itertools import product

def getranges(s):
    for a, b in re.findall(r"\[(\d+)-(\d+)\]", s):
        yield range(int(a), int(b)+1)

def strcombs(s):
    for r in product(*getranges(s)):
        it = iter(str(i) for i in r)
        yield re.sub(r"\[\d+-\d+\]", lambda _: next(it), s)

s = "123[4-6][1-2]"
print(list(strcombs(s)))    # ['12341', '12342', '12351', '12352', '12361', '12362']

@呜呜。。。在这里发布。@Leb-har-har,我正在寻找一段代码片段,说明尝试了哪些操作但未能正常工作。您应该能够使用12行基本python技能完成此操作,而无需外部导入