首页 > 解决方案 > 将 128 位的所有排列生成为字节或位,而不是字符串

问题描述

我试图生成 128 位的所有排列并将它们存储在某种结构中。我在其他 Stack Overflow 问题中使用以下方法找到了一些有用的信息:

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

问题是该解决方案仅对足够小的值有用,n因为它将列表中的值存储为字符串,因此序列中的每个位都是一个字节,这意味着每个排列的长度为 128 个字节

使用如此高的值,例如n=128,将所有排列存储为字符串是不可能的。(使用 执行时,我的计算机内存不足itertools.product()n=128。而将排列存储为原始字节意味着每个排列有 16 个字节。

我的问题是如何归档与intertools.product处理字节相同的结果。

标签: pythonpython-3.xpermutation

解决方案


尝试这个:

perms = [ x for x in range(0, 2**128)]

推荐阅读