Могу ли я предложить:
(defn all-pairs [sq] (for [i sq j sq] [i j]))
РЕДАКТИРОВАТЬ: Очевидно, я неправильно понял вопрос;поскольку вам нужны только отдельные недублированные пары, мы все равно можем использовать этот подход, если существует естественный порядок в любой области, в которой вы вызываете эту функцию.
Также:
(defn all-pairs [sq]
(partition 2 (flatten (map (fn [sqi] (map #(vector %1 %2) sq sqi))
(take-while not-empty (iterate rest (rest sq)))))))