Погодите. Давайте сначала. Вот искусственно надуманный, но понятный пример
lst = range(1, 10) # список на входе.
step_del = 4 # шаг, ч/з который удалять элементы списка.
while 1:
"""
зафиксируем состояние списка на входе:
"""
lst_copy = lst[:]
"""
пройдемся по последовательности от step_del-1 (4-й элемент, индекс 3)
с шагом step_del-1 (шаг сокращаем на 1,
т.к. с каждым удалением элемента из списка
индекс следующего удаляемого элемента
уменьшается на 1):
"""
for i in xrange(step_del-1, len(lst), step_del-1):
del lst[i:i+1] # удаляем
"""
если состояние списка на входе и
списка после for идентичны, то
значит больше ничего не удаляется
и надо завершать цикл while:
"""
if lst == lst_copy:
break
print lst
>>>
[1, 2, 3, 5, 6, 7, 9]
[1, 2, 3, 6, 7, 9]
[1, 2, 3, 7, 9]
[1, 2, 3, 9]
[1, 2, 3]
>>>
Что не так? Или тс не это имел в виду и я неверно понял задачу?