Почему цикл for в языке Python 3 ведёт себя не так, как надо?
тут не как в ПХП ))
это итератор, один вызов - один шаг,
торкнули два раза  - сделали два шага 
учите магию списков:
www.secnetix.de/olli/Python/list_comprehensions.hawk
реализовать можно, например:l = [x for x in l if l.count(x)>1]
Ваш код, простите, упорот. 
Вы O(N) проблему превратили в O(N^2).
Не говоря уже о том, что вы изменяете итерируемый массив.  
Уложите значения в хеш таблицу.  Проверяйте на >2 на каждой итерации и получите ваше решение.