Ce n'est pas un sous-ensemble que vous faites, c'est juste de faire un list
de toutes les valeurs du product
. Demander à chacun d'eux à la fois équivaut à courir un compteur de 0 à 2 ** 500
, ce qui, en cas de doute, prendrait à peu près le temps de "chaleur mort de l'univers" même à bas niveau, proche des langages métalliques. Ecrit, vous auriez 3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376 différentes sorties.
Vous ne pouvez pas réaliser toutes les valeurs, période, et encore moins tout à la fois. Si vous voulez voir certains d'entre eux, vous pouvez itérer le product
et imprimer comme vous allez:
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
ou utiliser itertools.islice
pour retirer un nombre gérable à list
ifier:
first10000subsets = list(itertools.islice(prod(valset, repeat=10), 10000))
Ce serait de longueur '2^500' octets. Ram de 8 Go est '2^30' octets. – Uriel
@UrielEli: éléments '2^500', ajoutez quelques bits supplémentaires si vous comptez des octets. :-) – ShadowRanger
@ShadowRanger à droite. En partant de 'sys.getsizeoff' qui serait autour de' 2^511'. – Uriel