How do you create a for loop with a dynamic range?
<p>I am iterating through a list.  An element could be added to this list during an iteration.  So the problem is that the loop only iterates through the original length of this list.</p>

<p>My code:</p>

<pre><code>    i = 1
    for p in srcPts[1:]:  # skip the first item.
        pt1 = srcPts[i - 1]["Point"]
        pt2 = p["Point"]

        d = MathUtils.distance(pt1, pt2)
        if (D + d) &gt;= I:
            qx = pt1.X + ((I - D) / d) * (pt2.X - pt1.X)
            qy = pt1.Y + ((I - D) / d) * (pt2.Y - pt1.Y)
            q  = Point(float(qx), float(qy))
            # Append new point q.
            dstPts.append(q)
            # Insert 'q' at position i in points s.t. 'q' will be the next i.
            srcPts.insert(i, {"Point": q})
            D = 0.0
        else:
            D += d
        i += 1
</code></pre>

<p>I've tried using <code>for i in range(1, len(srcPts)):</code> but again the range stays the same even after more items have been added to the list.</p>
