半角数字から全角数字、もっといい方法ないんかねぇ?

逆は簡単

python 2.7 の場合
1 # -*- coding: utf-8 -*-
2 TBL = dict(zip((ord(str(i)) for i in range(10)),
3                 (i + ord(u"0") for i in range(10))))
4 
5 import random
6 print(unicode(random.randint(0, 100)).translate(TBL))

string.maketrans に unicode 渡せないの。