Use the struct module; it has unpack
function which allows to specify the chunk size size (byte, 2-byte, 4-bytes) and endianess in the data. If what you have is big-endian half-word sized data chunks, then the right format key is ">H".
To parse all data at one, add count in the format specifier: for example ">3H" for you input array. You can also write the number of fields dynamically.
Full example:
import struct
data = b'\x07\x89\x00\x00\x12\x34'
d = struct.unpack(">{}H".format(len(data) // 2), data) # extract fields
result = [hex(x) for x in d] # convert to strings