import unicodedata
kanji = []
for i in range(0xffff):
  c = unichr(i)
  n = unicodedata.name(c, '')
  if 'CJK' in n and 'IDEOGRAPH' in n:
    kanji.append(c)
print len(kanji)

何を漢字とみなすかが問題だけど、一般的にはこんなもんでいいんじゃないかな