Python: simple way to increment by alternating values?
<p>I am building a list of integers that should increment by 2 alternating values. </p>

<p>For example, starting at 0 and alternating between 4 and 2 up to 20 would make:</p>

<pre><code>[0,4,6,10,12,16,18]
</code></pre>

<p>range and xrange only accept a single integer for the increment value. What's the simplest way to do this? </p>

<p>I might use a simple <code>itertools.cycle</code> to cycle through the steps:</p>

<pre><code>from itertools import cycle
def fancy_range(start, stop, steps=(1,)):
    steps = cycle(steps)
    val = start
    while val &lt; stop:
        yield val
        val += next(steps)
</code></pre>

<p>You'd call it like so:</p>

<pre><code>&gt;&gt;&gt; list(fancy_range(0, 20, (4, 2)))
[0, 4, 6, 10, 12, 16, 18]
</code></pre>

<p>The advantage here is that is scales to an arbitrary number of steps quite nicely (though I can't really think of a good use for that at the moment -- But perhaps you can).</p>

python increment