Перечисления еще хуже. При понимании случая превратно где угодно используется перечисление, изменяет случай определения.
Как насчет этого?
struct.pack('>I', some_integer) + struct.pack('b'*len(long_array), *long_array)
Пакет Perl использует символ '*', аналогичный тому, который используется в регулярных выражениях - -значение подстановочного знака для более того же. Здесь, конечно, это означает больше целых чисел со знаком.
В Python вы просто перебираете строку и объединяете части:
result = struct.pack('>L', some_integer)
for c in long_array_of_integers:
result += struct.pack('b',c)