(defun two-max (list)
  (if (= 2 (length list))
      (values (apply #'max list) (apply #'min list))
      (multiple-value-bind (a b) (two-max (cdr list))
	(let ((c (car list)))
	  (values (max a c) (max b (min c a)))))))

(print (multiple-value-list (two-max '(34 3 2 5 7 3 2 4 7 9 7 5 8 10 33 25 29))))