Вы уверены, что это не так? Вы можете проверить код ниже. Результаты одинаковы:
def make_hex(a):
list = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
output = []
while a>1:
output.append(list[a%16])
a = a//16
output.reverse()
return '0x' + ''.join(output)
a = 760402852596084587359490684321824034940816612213847025986535451828145781910762684416
print(make_hex(a))
print(hex(a))