Группы из трех букв

Напишите функцию, которая будет принимать строку и возвращать отсортированный список трехбуквенных групп. Список формируется следующим образом: берем первые три буквы строки, затем сдвигаемся на одну букву и берем следующие три буквы и т. д. Если в переданной строке меньше трех букв, нужно вернуть пустой список.

Разбор примера

 three_letter_collection("python") ➞ ["hon", "pyt", "tho", "yth"]
 # 1-я группа: "hon"
 # 2-я группа: "pyt"
 # 3-я группа: "tho"
 # 4-я группа: "yth"
 # Не забудьте отсортировать список! 

Примеры

 three_letter_collection("slap") ➞ ["lap", "sla"]
 three_letter_collection("click") ➞ ["cli", "ick", "lic"]
 three_letter_collection("cat") ➞ ["cat"]
 three_letter_collection("hi") ➞ []

Варианты решения

def three_letter_collection(s):
    return sorted(s[i:i+3] for i in range(len(s)-2))
def three_letter_collection(s):
    return sorted(a+b+c for a,b,c in zip(s, s[1::], s[2::]))
def three_letter_collection(s):
    length = len(s)
    res = []
    if length < 3:
        return res
    for i in range(0, length -2):
        res.append(s[i:i+3])
    res.sort()
    return res