(define-module (pypi utils) #:use-module (ice-9 match) #:use-module (srfi srfi-69) #:use-module (guix packages) #:export (all-combinations)) ; Combinatorics (define (combinations lst len) (cond ((= len 0) '(())) ((null? lst) '()) (else (append (map (lambda (rest) (cons (car lst) rest)) (combinations (cdr lst) (- len 1))) (combinations (cdr lst) len))))) (define (all-combinations lst) (apply append (map (lambda (len) (combinations lst len)) (cdr (iota (+ 1 (length lst)))))))