# A question about making a sort-of-counter.

Justin Park hp6 at rice.edu
Wed Mar 31 00:12:28 CEST 2010

```Thanks!
It works!

Justin.

Chris Rebert wrote:
> On Tue, Mar 30, 2010 at 2:31 PM, Justin Park <hp6 at rice.edu> wrote:
>
>> Suppose I have a list.
>> a = list()
>> And suppose allowed digits as the element are 1,2,3,4,5.
>>
>> What can I do in order to iterate over all possible values for each element?
>> For instance, the sequence of the list I want to have would be
>> [1,1,1,1,1]
>> [1,1,1,1,2]
>> [1,1,1,1,3]
>>
>> ....
>>
>> [5,5,5,5,4]
>> [5,5,5,5,5]
>>
>> How can I make it happen?
>>
>
> allowed = range(1,6)
> length = 5
> for counter_tuple in product(allowed, repeat=length):
>     counter_list = list(counter_tuple) # if you really need a list
>     #do whatever with the counter value
>
> See the docs for itertools.product(); an example virtually identical
> to your situation is given:
> http://docs.python.org/library/itertools.html#itertools.product
>
> Cheers,
> Chris
> --
> http://blog.rebertia.com
>
>

```