title: How can I programmatically find the list of codecs known to Python?
body: <p>I know that I can do the following:</p>
  
  <pre><code>&gt;&gt;&gt; import encodings, pprint
  &gt;&gt;&gt; pprint.pprint(sorted(encodings.aliases.aliases.values()))
  ['ascii',
   'base64_codec',
   'big5',
   'big5hkscs',
   'bz2_codec',
   'cp037',
   'cp1026',
   'cp1140',
   'cp1250',
   'cp1251',
   'cp1252',
   'cp1253',
   'cp1254',
   'cp1255',
   'cp1256',
   'cp1257',
   'cp1258',
   'cp424',
   'cp437',
   'cp500',
   'cp775',
   'cp850',
   'cp852',
   'cp855',
   'cp857',
   'cp860',
   'cp861',
   'cp862',
   'cp863',
   'cp864',
   'cp865',
   'cp866',
   'cp869',
   'cp932',
   'cp949',
   'cp950',
   'euc_jis_2004',
   'euc_jisx0213',
   'euc_jp',
   'euc_kr',
   'gb18030',
   'gb2312',
   'gbk',
   'hex_codec',
   'hp_roman8',
   'hz',
   'iso2022_jp',
   'iso2022_jp_1',
   'iso2022_jp_2',
   'iso2022_jp_2004',
   'iso2022_jp_3',
   'iso2022_jp_ext',
   'iso2022_kr',
   'iso8859_10',
   'iso8859_11',
   'iso8859_13',
   'iso8859_14',
   'iso8859_15',
   'iso8859_16',
   'iso8859_2',
   'iso8859_3',
   'iso8859_4',
   'iso8859_5',
   'iso8859_6',
   'iso8859_7',
   'iso8859_8',
   'iso8859_9',
   'johab',
   'koi8_r',
   'latin_1',
   'mac_cyrillic',
   'mac_greek',
   'mac_iceland',
   'mac_latin2',
   'mac_roman',
   'mac_turkish',
   'mbcs',
   'ptcp154',
   'quopri_codec',
   'rot_13',
   'shift_jis',
   'shift_jis_2004',
   'shift_jisx0213',
   'tactis',
   'tis_620',
   'utf_16',
   'utf_16_be',
   'utf_16_le',
   'utf_32',
   'utf_32_be',
   'utf_32_le',
   'utf_7',
   'utf_8',
   'uu_codec',
   'zlib_codec']
  </code></pre>
  
  <p>I also know for sure that this is not a complete list, since it includes <em>only</em> encodings for which an alias exists (e.g "cp737" is missing), and at least some pseudo-encodings are missing (e.g "string_escape").</p>
  
  <p>As the title of the question says: how can I programmatically get a list of all codecs/encodings known to Python?</p>
  
  <p>If not programmatically: is there a complete list available online?</p>