How to generate exponentially increasing range in Python

python

Solution

To produce the same numbers as your code:

numbers_sizes = (i*10**exp for exp in range(2, 9) for i in range(1, 10))
for n in numbers_sizes:
    test(n)

Problem

I want to test the performance of some code using an exponentially increasing value. So that as an extra digit is added to the numbers_size the increment is multiplied by 10. This is how I'm doing it so far but it looks a bit hacky. Suggestions for improvements without introducing non-standard libraries? ``` numbers_size = 100 increment = 100 numbers_range = 1000000000 while numbers_size < numbers_range: t = time.time() test( numbers_size ) taken_t = time.time() - t print numbers_size, test, taken_t increment = 10 ** (len(str(numbers_size))-1) numbers_size += increment ```

Original source