As far as I know the for loop uses the iter function and you should not mess with a structure while iterating over it.
Does it have to be a dictionary? If you use a list something like this might work:
while len(my_list) > 0:
#get last item from list
key, value = my_list.pop()
#do something with key and value
#maybe
my_list.append((key, value))
Note that my_list is a list of the tuple (key, value). The only disadvantage is that you cannot access by key.
EDIT: Nevermind, the answer above is mostly the same.