let genWord = let cnt = ref 1 (fun (preWord:string) -> let preWord = preWord.ToCharArray() let preLastCharacter = preWord |> Array.last let addWord = (('a' |> int) + cnt.Value) |> char incr cnt let newWord = new string[|preLastCharacter;addWord|] newWord) let startWord = "aa" let n = stdin.ReadLine() |> int startWord |> Seq.unfold(fun word -> let newWord = genWord word Some(word,newWord)) |> Seq.take n |> Seq.iter(printfn "%s")