Набор совпадающих строк бесконечен тогда и только тогда, когда в вашем регулярном выражении есть квантификатор (+ или *). Ваш вопрос, похоже, не нацелен на эти паттерны. Я скорее верю, что функция product из itertools
может помочь здесь.
Вы можете, например, ввести специальный символ, обозначающий произвольную букву (например, подчеркивание), а затем построить шаблон, подобный этому
patt = 'a_c'
и определите свой алфавит
youralphabet = 'abcde...'
и определите функцию, генерирующую все возможные экземпляры, подобные этой
def genInstances(patt):
elems = [c if c != '_' else youralphabet for c in patt]
return itertools.product(*elems)
Затем вы можете расширить этот подход, чтобы он соответствовал реальному регулярному выражению, проанализировав ваш шаблон для \d
или [a-zA-Z]
или чего угодно.