Это не подмножество, которое вы создаете, это всего лишь list
всех значений из product
. Спросить всех из них одновременно эквивалентно запуску счетчика от 0 до 2 ** 500
, что, если это неясно, приведет к грубой «жаркой смерти вселенной» даже на низкоуровневых, близких к металлическим языкам. Написано, у вас будет 3273390607896141870013189696827599152216482046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376 различные выходы.
Вы не можете реализовать все значения, период, не говоря уже о всех сразу. Если вы хотите увидеть некоторые из них, вы можете итерируете product
и печати, как вы идете:
valset = [0, 1] # Don't name a variable set, it shadows the built-in set
for subset in prod(valset, repeat=10):
print(subset) # Be prepared to Ctrl-C this, it will never end on its own
или использовать itertools.islice
стащить управляемый номер для list
римента:
first10000subsets = list(itertools.islice(prod(valset, repeat=10), 10000))
Это было бы из длина '2^500' байт. Рам 8GB составляет '2^30' байт. – Uriel
@UrielEli: '2^500' элементы, добавьте еще несколько бит, если вы подсчитываете байты. :-) – ShadowRanger
@ShadowRanger правый. Исходя из 'sys.getsizeoff', который будет около' 2^511'. – Uriel