(DEFUN isin(k lst) (COND ((NULL lst) NIL) ((eq (car lst) k) T) (1 (isin k (cdr lst))) ) ) (DEFUN perest(n k lst) (COND ((> k n) (PRINT lst)) (1 (SET 'i '1) (LOOP (COND ((> i n) (RETURN NIL)) ( (COND ((isin i lst) (set 'i (+ i '1))) (1 (PUSH i stk) (perest n (+ k '1) (CONS i lst)) (set 'i (+ (POP stk) '1))) ) ) ) ) ) ) ) (DEFUN makeperest(n) (SET 'stk NIL) (perest n 1 NIL) )