(def sb (java.lang.StringBuilder.))
(doseq [planet
(sort (take 5000 (distinct (filter #(if-not (or
                          (< (count %) (- 4 (rand-int 4/3)))
                          (> (count %) 9)
                          (re-find #"[AEIOUaeiou]{3}" %)
                          (re-find #"(\w)\1\1" %)
                          (re-find #"(?i)(\w)\1(\w)\2" %)
                          (re-find #"[AEIOUaeiou]{2}ck" %)
                          (re-find #"[Aa][aeo]" %)
                          (re-find #"[Uu][uomylk]" %)
                          (re-find #"[Ii][uiyqk]" %)
                          (re-find #"[Oo][aec]" %)
                          (re-find #"oon" %)
                          (re-find #"[Oo][iu][bmvfcxhj]" %)
                          (re-find #"[Yy][aeiou]{2}" %)
                          (re-find #"[Rr][aeiouy]+[xrhp]" %)
                          (re-find #"[Qq]u[yu]" %)
                          (re-find #"[Ii][iyhrl]" %)
                          (re-find #"[Cc][eui]" %)
                          (re-find #"[FfDdCc].+k" %)
                          (re-find #"[FfWwPp].+p" %)
                          (re-find #"[Ss]h.*[dt]" %)
                          (re-find #"[NnFf].*g" %)
                          (re-find #"[Kk].*k" %)
                          (re-find #"[Bb].*ch" %)
                          (re-find #"[WwHh]..?r" %)
                          (re-find #"[Tt]..?t" %)
                          (re-find #"[Pp][eio][eos]" %)
                          (re-find #"[Ff].+rt" %)
                          (re-find #"[Aa]n.+s" %)
                          (re-find #"[Aa]s+" %)
                          (re-find #"[^oai]uch" %)
                          (re-find #"[^tcsz]hh" %)
                          (re-find #"[Hh][tcszi]h" %)
                          (re-find #"[Tt]t[^aeiouy]{2}" %)
                          (re-find #"[IYiy]h[^aeiouy ]" %)
                          (re-find #"[zjdxvb]h" %)
                          (re-find #"[ZzSs][sz]" %)
                          (re-find #"[szSZ][^aeiou][sz]" %)
                          (re-find #"[rlRL][^aeiou][rl]" %)
                          (re-find #"[UIui][wy]" %)) %)
(repeatedly (fn[]
  (->
    (clojure.string/capitalize (apply str(take(* 3(max (+ 1 (rand-int 3) (rand-int 2) (rand-int 2) (rand-int 2) (- 0 (rand-int 2) (rand-int 2))) 1))
    (interleave
      (repeatedly #(if(<(rand-int 5)4)
        (apply str(concat(rand-nth[
                        [(rand-nth["b""d""g""c""f""t""th""sh"])(rand-nth["r"""""""])]
                        [(rand-nth["s""g""c""f""p"])(rand-nth["l"""""""])]
                        [(rand-nth["b""d""g""c""f""t""th"])(rand-nth["r"""""""""])]
                        [(rand-nth["s""g""c""f""p"])(rand-nth["l"""""""""])]
                        [(rand-nth(concat (apply concat (repeat 2
                        ["s""s""s""r""r""l""l""th""th""ch""sh""ch""sh""m""n""n""t""t"]))
                        ["j""w""wh""j""w""y""qu""p""ph""k""h""z""v"]))]
                        [(rand-nth["s""s""r""r""l""l""th""th""ch""sh""sh""m""m""n""n""t""t"])]
])))
        ""))
      (repeatedly #(rand-nth["a""e""i""a""o""e""i""u""a""a""o""e""e""ee""oo""eu""ou""ai""au"]))
      (repeatedly #(if(<(rand-int 5)3)
        (rand-nth["s""t""n""s""t""n""n""l""l""b""p""m""b""g""b""g""sh""d""rt""st"
                  "ss""tt""ss""tt""ll""rr""dd""ss""tt""ll""rr""dd""gg""gg""gg""pp""mm""nn"
                  "n""l""l""b""p""m""b""g""b""g""ld""lt""rd""ck""ck""rk""sh""d""rt""sk""st""h""v""z""ph"])
        ""))))))
  (clojure.string/replace #"a[ei]g$" (fn [_] (rand-nth ["oggle" "aid" "ag" "ague"])))
  (clojure.string/replace #"ch$" "tch")
  (clojure.string/replace #"ai([gtlzvbh])\1" "aim")
  (clojure.string/replace #"v$" "ff")
  (clojure.string/replace #"s$" (fn [_] (rand-nth ["s" "s" "ce" "ze"])))
  (clojure.string/replace #"([^aeiouy])\1[eu]$" "$1e")
  (clojure.string/replace #"(aeiou)t$"  (fn [[s]] (str s (rand-nth ["t" "tch" "rt"]))))
  (clojure.string/replace #"mm([^aeiouy])" "m$1")
  (clojure.string/replace #"tt$" "pt")
  (clojure.string/replace #"nn$" (fn [_] (rand-nth ["nd" "n" "nt" "ng"])))
  (clojure.string/replace #"([^aeiou])$" (fn [[s]]
        (rand-nth [s s s s s s s s s s  s (str s "er") (str s "ish") (str s "oid")])))
  (clojure.string/replace #"o[uai]$" (fn [_] (rand-nth ["ought" "aught" "ough"])))
  )))))))]
  (.append sb (str planet "\n")))
(println (.toString sb))