Хорошо, если вы точно придерживаетесь этих командных строк:
indice = groupby(input())
112222334411122111
print(*[(len(list(c)), int(k)) for k, c in indice])
Он ответит вам:
(2, 1) (4, 2) (2, 3) (2, 4) (3, 1) (2, 2) (3, 1)
Но если вы выполните именно эти командные строки: (сразу после ответа)
for k in indice :
print(k)
Это ничего не возвращает (вероятно, наивный код), но интересно то, что если вы переписываете свой код:
print(*[(len(list(c)), int(k)) for k, c in indice])
ничего не вернется
И еще одна интересная вещь: написание
print(*[(len(list(c)), int(k)) for k, c in indice])
дважды (после сброса) во второй раз ничего не вернется (но вернет то, что вы хотели в первый раз). Как будто функция groupby может печатать только один раз. Это то, что я бы понял.