Au fait, j'y avais pas pensé, mais ça fait dix millions de nombres ton truc, t'as fait chauffer mon laptop :mad:
Voilà le code (oui, le premier truc auquel j'ai pensé c'est une fonction récursive, c'est pas du tout efficace mais au moins ça marche) :
#!/usr/bin/env python3
fichier="résultats.txt"
nbchiffres=8
sortie=open(fichier, "w")
c=list("0"*nbchiffres)
def write_combi(rang):
if rang==(nbchiffres-1):
for i in range(10):
c[rang]=str(i)
sortie.write("".join(c) + "\n")
else:
for i in range(10):
c[rang]=str(i)
write_combi(rang+1)
write_combi(0)
Attention ça va prendre pas mal de temps à remplir ton fichier. Je chercherai un truc mieux optimisé demain, là je dors 😃
Edit : si c'est pour une bruteforce je dirai que je l'ai fait sous ta contrainte :o
Edit 2 : et avec Dropbox qui a voulu sauvegarder les résultats t'as aussi bouffé mon forfait :mad: T'es qu'un fumier 😐
Edit 3 : comme t'as pas encore répondu, je prends le temps de te mettre une version plus rapide en C++ :
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const string nom_fichier("results");
const int nbchiffres(8), chiffremax(9);
void write_combi(ostream*, int, string*);
int main() {
string combi(nbchiffres, '0');
ofstream sortie(nom_fichier.c_str(), ios_base::out);
write_combi(&sortie, 0, &combi);
return 0;
}
void write_combi(ostream* sortie, int rang, string* cache) {
for (int i = 0; i<=chiffremax; ++i) {
(*cache)[rang] = to_string(i)[0];
if (rang == nbchiffres-1)
*sortie << *cache << '\n';
else
write_combi(sortie, rang+1, cache);
}
}