Fix error when ligting mixed string/dict candidates

The variable iterating over the candidate matches has to be unlet before
the next iteration of the loop, for each item in the lists returned by the
sources can be either a string or a dictionary, and reassigning variables
is only allowed with the same value type.