>>> a = b'\x91\x44\x77\x65\x92'
>>> a.encode("hex")
'9144776592'
>>> b.encode('hex')
'4445414442454546'
Note, that it's not nice to use encode('hex')
- here's an explanation why:
The way you use the hex codec worked in Python 2 because you can call
encode() on 8-bit strings in Python 2, ie you can encode something
that is already encoded. That doesn't make sense. encode() is for
encoding Unicode strings into 8-bit strings, not for encoding 8-bit
strings as 8-bit strings.
In Python 3 you can't call encode() on 8-bit strings anymore, so the
hex codec became pointless and was removed.
Using binascii is easier and nicer, it is designed for conversions between binary and ascii, it'll work for both python 2 and 3:
>>> import binascii
>>> binascii.hexlify(b'\x91\x44\x77\x65\x92')
b'9144776592'