Generating all permutations from a regexp

Fredrik Lundh fredrik at pythonware.com
Fri Dec 22 11:04:04 EST 2006


BJörn Lindqvist wrote:

> With regexps you can search for strings matching it. For example,
> given the regexp: "foobar\d\d\d". "foobar123" would match. I want to
> do the reverse, from a regexp generate all strings that could match
> it.
> 
> The regexp: "[A-Z]{3}\d{3}" should generate the strings "AAA000",
> "AAA001", "AAA002" ... "AAB000", "AAB001" ... "ZZZ999".
> 
> Is this possible to do? Obviously, for some regexps the set of matches
> is unbounded (a list of everything that matches "*" would be very
> unpractical), but how would you do it for simple regexps like the one
> above?

here's a start:

http://mail.python.org/pipermail/python-list/2001-August/102739.html

(the above generates *some* strings, not all, but the approach it uses 
can be generalized).

</F>




More information about the Python-list mailing list