I am new to regex. I am using Python 2.7 and BeautifulSoup4. I want to iterate over a particular regular expression.

**Required ouput :**

length : 5 , expression : [a-zA-Z0-9!&#%@]

It should try all possible combinations e.g:

[‘aaaaa’,’aaaab’,’aaaac’,…,’aaaaz’,’aaaaA’,…,’aaaaZ’,’aaaa0′,’aaaa9′,’aaaa!’,’AAA!!’]

Moreover this should be possible too. If the expression is oranged{1}

[‘orangea’,’oranges’]]

I tried this:

regexInput = "a-z0-9" #regexInput = "a-zA-Z0-9!@#$%^&" comb = itertools.permutations(regexInput,passLength) for x in comb: ''.join(x)

I realized that this is a totally wrong approach as these are just permutations. Please help. Sorry for bad explaination, very frustrated.

Itertools functions for permutations or combinaisons takes a series of elements as first parameter. It cannot generate the serie for you (from `a-z`

to `abc...xyz`

). Fortunatly `string`

offer some constants like `ascii_letters`

that contain `a-zA-Z`

.

If your goal is to interpret the regex and generate every cases, … It’s pretty hard and you should explain the *why?* before we go further.

If you just want to get combinaisons for alphabetical letters:

import string from itertools import combinations_with_replacement result = combinations_with_replacement(string.ascii_letters, 5) #comb = [''.join(n) for n in result] # warning, heavy processing print [''.join(result.next()) for _ in range(10)] # > ['aaaaa', 'aaaab', 'aaaac', 'aaaad', 'aaaae', 'aaaaf', 'aaaag', 'aaaah', 'aaaai', 'aaaaj']

You can replace `string.ascii_letters`

with any serie of characters.

## Recent Comments