アルファベットの繰り上がり

アルファベットの繰り上がり どう書く?org via Haskell はスケるよ - アルファベットの繰り上がり

module Main (main) where
alphaList = let alphas = ['A'..'Z']
            in  (concatMap (\x->[x,' ']) alphas) ++ (concatMap (\x ->concatMap (\y -> [x,y,' ']) alphas) alphas)
strList n = drop 1 $ concatMap (\x -> ',':x) $ take n  $ words alphaList
main = putStrLn $ strList 100

'A'から'ZZ'までしか出力できないけど、お題はみたしてるから、ゆるして。

$ ./succ 
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,\
AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,\
BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,\
CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV