A string (for example, "ΠΌΠ°ΠΉ" ) is an immutable sequence of Unicode characters (Unicode code points) in Python 3. Therefore, it is enough just to pass a string to list() to get a list of characters (a variable sequence).
Some letters can consist of several characters, for example, a letter can be represented as U + 0435 U + 0308 sequences of characters in the NFD form ( Unicode normalization forms ):
>>> print(u'\u0435\u0308') Π΅Μ
If you want to find letters, not symbols, you can use the \X regular expression for letters ( eXtended grapheme clusters ):
>>> list(u'\u0435\u0308\u0436') ['Π΅', 'Μ', 'ΠΆ'] >>> import regex # $ pip install regex >>> regex.findall(r'\X', u'\u0435\u0308\u0436', regex.U) ['Π΅Μ', 'ΠΆ']
In this case, the line contains three characters, but only two letters.
In general, not all visible characters can be represented as a single Unicode codepoint, that is, NFD is not the only reason that some characters on the screen can be represented as several Unicode codepoints ( see examples in the link above ).