I want to create a list of length n with the letters of the alphabet.

For example, if n = 3, by list would be {a,b,c}. If n=6, the list would be {a,b,c,d,e,f}.

Is there any easy way to do this?


No need to use *CharacterCode[] :

letters[n_] := CharacterRange["a", "z"][[;; n]]

{"a", "b", "c"}
  • 2
    $\begingroup$ I'd say ugly but nice :) $\endgroup$ – Kuba May 23 '14 at 12:52
  • 1
    $\begingroup$ Ha, it works even with non-Latin alphabets.. It is new for me, that Mathematica can correctly understand Cyrillic ranges of symbols :) $\endgroup$ – Rom38 May 23 '14 at 13:03
  • 1
    $\begingroup$ @Rom38 It works with all letters of all types that exist as a contiguous block in the character space. $\endgroup$ – Dr. belisarius May 23 '14 at 13:12
  • $\begingroup$ Yes, it is true, but just 3-4 years ago Mathematica had permanent problems with Cyrillic alphabet (mostly regarded to encodings) $\endgroup$ – Rom38 May 23 '14 at 14:50

Nowadays, one can use Alphabet[] along with Take[] or Part[] + Span[]:

Take[Alphabet[], 6]
   {"a", "b", "c", "d", "e", "f"}

Take[Alphabet[], {19, UpTo[28]}]
   {"s", "t", "u", "v", "w", "x", "y", "z"}

In addition to this, Alphabet[] is aware of alphabets other than the Latin alphabet:

Take[Alphabet["Greek"], 5]
   {"α", "β", "γ", "δ", "ε"}

Take[Alphabet["Hebrew"], {4, 8}]
   {"ד", "ה", "ו", "ז", "ח"}
 lttrsF = FromCharacterCode /@ (ToCharacterCode[#][[1]] + Range[0, #2-1]) &
 lttrsF["b", 4]
 (*  {"b", "c", "d", "e"}  *)

You might want to use FromCharacterCode:


gives a string consisting of the character with integer code n.

letters[n_] := StringSplit[FromCharacterCode[Range[97, 97 + n - 1]], ""]

{"a", "b", "c"}


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.