Better to just use a while loop for this sort of thing rather than a `range` I think.  Especially less confusing where it switches over to adaptive corrections