Мне было бы интересно увидеть более питонический способ сделать это. Но это дрянное решение. Вам нужно будет добавить проверку для списка индексов empry.
Что-то по строкам:
indexes = [5, 12, 17]
list = range(20)
output = []
prev = 0
for index in indexes:
output.append(list[prev:index])
prev = index
output.append(list[indexes[-1]:])
print output
производит
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16], [17, 18, 19]]