# [Tutor] All possible 16 character alphanumeric strings?

eryksun eryksun at gmail.com
Sun Sep 16 18:50:24 CEST 2012

```On Sat, Sep 15, 2012 at 6:50 PM, Scurvy Scott <etanes.rm at gmail.com> wrote:
>
> I'm trying to generate a list of every possible 16 character string
> containing only 2-7 and a-z lowercase.

This type of problem is just nested iteration:

>>> seq = '01'
>>> r = []
>>> for g0 in seq:
...   for g1 in seq:
...     for g2 in seq:
...       r.append( ''.join([g0, g1, g2]))
...
>>> r
['000', '001', '010', '011', '100', '101', '110', '111']

You can generalize this with a recursive generator, or use
itertools.product(seq, repeat=N):

def seq_prod(seq, n):
if n > 1:
for left in seq:
for right in seq_prod(seq, n - 1):
yield (left,) + right
elif n == 1:
for item in seq:
yield (item,)

>>> [''.join(s) for s in seq_prod('01', 3)]
['000', '001', '010', '011', '100', '101', '110', '111']

>>> [''.join(s) for s in itertools.product('01', repeat=3)]
['000', '001', '010', '011', '100', '101', '110', '111']
```