Для этого вам нужно использовать функцию ключа, которая разбивает строку на компоненты и возвращает их в виде кортежа. Любая подстрока, являющаяся числом, должна быть преобразована в целое число, если вы хотите, чтобы ее значение рассматривалось численно, в противном случае оно будет лексикографически (в алфавитном порядке).
Основываясь на данных примера, я думаю, что это будет выглядеть так :
def keyfunc(s):
return s[0], int(s[1:3]), s[3], int(s[4:])
list1 = ["S01E01","S02E010", "S02E013", "S02E02", "S02E03"]
result = sorted(list1, key=keyfunc)
print(result) # -> ['S01E01', 'S02E02', 'S02E03', 'S02E010', 'S02E013']