flat = ['Shoes', 'pants', 'shirt', 'tie', 'jacket', 'hat']
result = []
for k, g in groupby(sorted(flat, key=len), key=len):
    result.append(list(g))
print(result)
Вложение плоского списка на основе произвольного критерия