Start by defining a function that determines if one list is smaller. The following example assumes that lists can contain only numbers:
(defun list< (ab) (cond ((null a) (not (null b))) ((null b) nil) ((= (first a) (first b)) (list< (rest a) (rest b))) (t (< (first a) (first b))) ))
Armed with this feature, you can now sort the list of lists.
(sort (copy-seq list)
source share