URL: https://linuxfr.org/forums/programmation-python/posts/resolu-itertools-generer-les-combinaisons-une-par-une Title: [Résolu] Itertools générer les combinaisons une par une Authors: alberic89 🐧 Date: 2022年12月26日T12:26:03+01:00 License: CC By-SA Tags: python et génération Score: 2 Bonjour le monde ! J'ai un petit problème très pythonesque à vous soumettre aujourd'hui. J'ai codé [un petit script](https://github.com/alberic89/Mathenjeans2022/blob/main/Marienbad/generator.py) qui me génère toutes les situations « gagnantes » au [jeu de Marienbad](https://fr.wikipedia.org/wiki/Jeu_de_Marienbad). Il génère des combinaisons de tas de jetons, et teste si elles sont gagnantes, et les montre à l'écran si oui. Pour la génération des combinaisons, j'utilise [itertools](https://docs.python.org/fr/3/library/itertools.html) avec la fonction [combinations_with_replacement()](https://docs.python.org/fr/3/library/itertools.html#itertools.combinations_with_replacement). Seulement, quand on commence à passer à des générations avec une quinzaine de tas pouvant aller jusqu'à 20 jetons, le nombre de combinaisons générées explose et remplit mes 4 Go de RAM avant de se faire tuer par l'OS. Pour résoudre ce problème, il faudrait pouvoir tester les combinaisons au fur et à mesure qu'elles sont générées par itertools, et non pas quand il a fini de générer une fournée de combinaisons. Quelqu'un aurait-il une idée sur la façon de procéder, sachant que le module itertools est [écrit en C](https://github.com/python/cpython/blob/main/Modules/itertoolsmodule.c), mais il existe [une version python](https://foss.heptapod.net/pypy/pypy/-/tree/branch/default/pypy/module/itertools) dans les libs de Pypy ?

AltStyle によって変換されたページ (->オリジナル) /