print([[x for x in a if len(x) == i] for i in set(len(k) for k in a)])
print([[x for x in a if len(x) == i + 1] for i in range(max(len(x) for x in a))
    ])
Python: разделить список строк на список списков строк по длине с вложенными пониманиями