based on @est version
http://www.newsmth.net/bbstcon.php?board=Python&gid=95585
>>> get_id = lambda s: s[:17]+'10X98765432'[sum(int(a)*(int(b)+1) for a,b in zip(s,'68947310526894731'))%11]
>>> get_id('34052419800101001')
'34052419800101001X'
http://www.newsmth.net/bbstcon.php?board=Python&gid=95585
>>> get_id = lambda s: s[:17]+'10X98765432'[sum(int(a)*(int(b)+1) for a,b in zip(s,'68947310526894731'))%11]
>>> get_id('34052419800101001')
'34052419800101001X'