Вы можете написать функцию, которая возвращает генератор, который будет использоваться там, где вам нужно представить результат.
def slice_string_by(my_string, my_list):
memo = 0
for idx in my_list:
size = idx - memo
chunck = my_string[0:size]
yield chunck
my_string = my_string[size:]
memo = idx
yield my_string
Тогда вы можете просто позвонить:
res = slice_string_by(my_string, my_list)
В результате получается генератор, преобразующий в список, который вы получите:
list(res) #=> ['The qu', 'ick', ' br', 'own fox jumps over the lazy dog.']
Или вы можете просто перебрать его, чтобы напечатать элементы:
for chunk in slice_string_by(my_string, my_list):
print(chunk)
# The qu
# ick
# br
# own fox jumps over the lazy dog.