lst = ['a', 'b', 'ab', 'abc']
lst.sort(key=len)
from itertools import groupby
lst = [list(grp) for i, grp in groupby(lst, key=len)]
Python: разделить список строк на список списков строк по длине с вложенными пониманиями