Генерация всех перестановок 128 битов в виде байтов или битов, а не строк - PullRequest
0 голосов
/ 26 октября 2018

Я пытался сгенерировать все перестановки 128 битов и сохранить их в какой-то структуре.Я нашел некоторую полезную информацию об этом в других вопросах переполнения стека, используя:

keys = map(''.join,itertools.product('01',repeat=n)) 

Проблема в том, что это решение полезно только для достаточно небольших значений n, так как оно хранит значения в списке в виде строки, следовательно, каждый бит в последовательности будет байтом, что означает, что каждая перестановка будет иметь длину 128 байт

При таком высоком значении, как n=128, сохранение всех перестановок в виде строк невозможно.(Мой компьютер не хватает памяти при выполнении itertools.product() с n=128).Принимая во внимание, что хранение перестановок в виде необработанных байтов означало бы наличие 16 байтов для каждой перестановки.

Мой вопрос заключается в том, как заархивировать те же результаты, что и intertools.product, но иметь дело с байтами.

1 Ответ

0 голосов
/ 26 октября 2018

Попробуйте это:

perms = [ x for x in range(0, 2**128)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...