Aquí hay otra respuesta que debe trabajar con todas las versiones de Python desde 3.x hasta 2.0 (versión mínima según pyqver). A pesar de eso, debido a que se basa en una simple tabla (no dict) búsqueda, también debería ser relativamente rápido.
Se requiere una pequeña configuración única, pero es muy simple y evita usar cualquiera de las muchas mejoras que se han agregado (o eliminado) a lo largo del camino en una búsqueda de independencia de versión.
numerals = "abcdef"
hexadecimal = [i+j for i in numerals for j in numerals]
text = '\x00\x1b\xd4}\xa4\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
print ''.join([hexadecimal[ord(c)] for c in text.rstrip('\0')])
# 001bd47da4f3
'% 02x' sería mejor. –
OK, lo cambié para usar% 02x –
+1 porque es la mejor respuesta y no depende de la versión de Python. – martineau