MAINT: Use a for loop for main algorithm run loop instead of `list`

So that stepping through a debugger is a little easier, with
respect to having easy access to the algorithm object, and seeing
which step in `self.gen` the interpreter is currently at.