Pythonic way of writing a sequence of integers in monotonically increasing order
<p>What is the pythonic and efficient way of writing integers from <code>1</code> to <code>10**6</code> where digits are in a monotonically increasing order? </p>

<p>For example:
<code>(1,2,3,4,5,6,7,8,9,10,11,20,21,22,30,31,32,33,...)</code></p>

<p>This gets the job done but looks pretty ugly.</p>

<pre><code>nums = [10**0*k6 for k6 in range(1,10)] +
       [10**1*k5 + 10**0*k6 for k5 in range(1,10) for k6 in range(k5+1)] + 
       [10**2*k4 + 10**1*k5 + 10**0*k6 
        for k4 in range(1,10) for k5 in range(k4+1) for k6 in range(k5+1)] +
       [10**3*k3 + 10**2*k4 + 10**1*k5 + 10**0*k6
        for k3 in range(1,10) for k4 in range(k3+1) for k5 in range(k4+1) for k6 in range(k5+1)] +
       [10**4*k2 + 10**3*k3 + 10**2*k4 + 10**1*k5 + 10**0*k6
        for k2 in range(1,10) for k3 in range(k2+1) for k4 in range(k3+1) for k5 in range(k4+1) for k6 in range(k5+1)] +
       [10**5*k1 + 10**4*k2 + 10**3*k3 + 10**2*k4 + 10**1*k5 + 10**0*k6
        for k1 in range(1,10) for k2 in range(k1+1) for k3 in range(k2+1) for k4 in range(k3+1) for k5 in range(k4+1) for k6 in range(k5+1)]
</code></pre>
