Когда я запускаю ваш код, я получаю:
f8ac6baf0ac904d520de5287055bfd0f61775d0fc0699ffacff9f0d7271a021b
не d59eced1ded07f84c145592f65bdf854358e009c5cd705f5215bf18697fed103
Но вам нужно хешировать его как байты, а не как строки (это будет закодировано в ascii)если вы используете строку):
Python 2
from hashlib import sha256
header = '\x01\x00\x00\x00\x95\x00\xc4\x3a\x25\xc6\x24\x52\x0b\x51\x00\xad\xf8\x2c\xb9\xf9\xda\x72\xfd\x24\x47\xa4\x96\xbc\x60\x0b\x00\x00\x00\x00\x00\x00\x6c\xd8\x62\x37\x03\x95\xde\xdf\x1d\xa2\x84\x1c\xcd\xa0\xfc\x48\x9e\x30\x39\xde\x5f\x1c\xcd\xde\xf0\xe8\x34\x99\x1a\x65\x60\x0e\xa6\xc8\xcb\x4d\xb3\x93\x6a\x1a\xe3\x14\x39\x91'
print sha256(sha256(header).digest()).digest().encode('hex')
cac383cdf62f68efaa8064e35f6fc4dfc8aa74610c6580ed1729000000000000
Затем необходимо обратить обратный порядок байтов к старшему.
Python 3
from hashlib import sha256
header = bytes.fromhex('010000009500c43a25c624520b5100adf82cb9f9da72fd2447a496bc600b0000000000006cd862370395dedf1da2841ccda0fc489e3039de5f1ccddef0e834991a65600ea6c8cb4db3936a1ae3143991')
print(sha256(sha256(header).digest()).digest().hex())
cac383cdf62f68efaa8064e35f6fc4dfc8aa74610c6580ed1729000000000000