(defn f [s]
  (->> (drop-while (fn [[a b]] (not-every? not (map = a b)))
                   (repeatedly #(list (seq s) (shuffle (seq s)))))
       first
       second
       (apply str)))

(println (f "hoge"))