I\'m trying to run this code so that it runs a function for all elements of a list. For illustrative purposes here, basically it should print:
\'----------Possi
When you run input.remove(possible_word)
you're changing the size of the list which you happen to be iterating over, which leads to peculiar results. In general, don't mutate anything that you're iterating over.
More concise example:
>>> lst = ['a', 'b', 'c']
>>> for el in lst:
print el
lst.remove(el)
a
c
Jon Clements is right. You generally don't want to do something like this. However I'll assume you have a specific need for it.
The answer is simple. Change the line
for possible_word in input:
to this line
for possible_word in input[:]:
This will make a copy of the list for you to iterate over. That way when you remove an item it won't effect your loop.