Есть несколько вещей, которые мешают вашему коду работать, на что люди указывали в комментариях. Вместо того, чтобы пытаться анализировать ваш код и заставить его работать, я написал гораздо более краткую функцию, которая даст вам результаты, к которым вы стремитесь
def text_splitter(input_text, set_length):
num_sets = int(len(input_text)/set_length)
split_text = ["".join([input_text[(n * num_sets) + m] for n in range(set_length)]) for m in range(num_sets)]
return split_text
text_to_split = input('Text: ').lower()
len_set = int(input('Set Length: '))
text_list = text_splitter(text_to_split, len_set)
Извините, я изо всех сил пытался назвать переменные в эффективном образом, но функция выше использует выражение списка, чтобы получить нужные вам результаты. Имейте в виду, что если вы используете 7-буквенную строку и запрашиваете наборы длины 2, последняя буква не будет добавлена. Однако это не должно быть слишком сложно проверить и исправить. Например, вы можете добавить этот код в функцию или около начального ввода для заданной длины:
while len(input_text) % set_length != 0:
set_length = int(input("The text is length " + str(len(input_text)) + " please enter a different set length: "))