Решение:
def find_second_index(value, items):
iterator = iter(items)
first = find_index(value, iterator)
second = find_index(value, iterator)
if second is not None:
return first + second + 1
Проблема была в том, что я искал какое-то экономичное решение, которое учитывало бы то, что в предыдущей функции уже был найден один индекс. Оказалось, что правильное решение просто делает все заново но 2 раза (с небольшими оговорками)