_nsre = re.compile('([0-9]+)')

def natural_sort_key(s):
    return [(int(text) if text.isdigit() else text.lower()) for text in re.
        split(_nsre, s)]
Сортировка в python – как отсортировать список, содержащий буквенно-цифровые значения?