За сортировку имён отвечает функция get_replace_file_names().
Но даже для большего количества файлов (n=5 m=7) всё будет работать. Но вот для десятков файлов её надо будет подредактировать. Я не стал заморачиваться изначально, потому что неочевидно было, что файловые имена могут быть разными и отсортированы по-разному. Поэтому сортировка применена простейшая (строковая), а должна быть немного более продвинутой (числовой).
Для компа файлы 1.xsh, 2.xsh, 10.xsh, 20.xsh находятся в порядке 1.xsh, 10.xsh, 2.xsh, 20.xsh. Поэтому надо брать имя, выделять из него подстроку-число, преобразовывать её в число и сравнивать уже числа. А для этого надо применить ряд приёмов.
Serggg
Что изменить в скрипте
Надо сначала не в скрипте менять, а определить все возможные имена файлов и как они должны упорядочиваться относительно друг друга.
Но я бы сделал так, что увеличил количество обрабатываемых файлов с именами по одному определённому шаблону до любого количества, а потом любые входные файлы просто переименовывал в подходящие имена. Либо ввёл порядок для файлов с помощью дополнительного файла со списком имён в правильном порядке и брал бы имена файлов не из директории, а из этого файла.