Во время вызова ilepar ('123') происходит следующее:
1) после первого для l oop, список lst построено как lst = [1,2,3] . Следовательно, lst представляет собой список из 3 элементов, и вы можете получить к ним доступ с помощью индексов 0-2 (lst [0] = 1, lst [1] = 2, lst [2] = 3)
2) в секунду для l oop, i принимает каждое из значений lst . Итак, на первой итерации i = 1 , затем вы сравниваете 1 с lst [1 + 1] , что нормально, поскольку 1 + 1 = 2 является допустимым индексом в lst. На второй итерации i = 2 и вы сравниваете ее с lst [2 + 1] , и это приводит к тому, что индекс выходит за пределы, поскольку 3 не является допустимым индексом в lst!