The doc of itertools.groupby has a example that matches exactly what you want.
keyfunc = lambda x: len(x)
data = ["This", "is", "a", "sentence", "of", "seven", "words"]
data = sorted(data, key=keyfunc)
groups = []
for k, g in groupby(data, keyfunc):
groups.append(list(g))
print groups