Génération combinaison de chiffres sur calc

Bonjour, sur CALC comment générer toutes les combinaisons possibles d’une liste de 8 numéros sur la base de 5 numéros à chaque fois. ex: 123456,123457, 123458 etc…
Merci par avance. Bien cordialement.

En regardant bien, tes exemples ont une longueur de 6 chiffres et non de 5 ?

Est-ce que tu veux quelque chose comme ça:

 '123456',
 '123457',
 '123458',
 '123467',
 '123468',
 '123478',
 '123567',
 '123568',
 '123578',
 '123678',
 '124567',
 '124568',
 '124578',
 '124678',
 '125678',
 '134567',
 '134568',
 '134578',
 '134678',
 '135678',
 '145678',
 '234567',
 '234568',
 '234578',
 '234678',
 '235678',
 '245678',
 '345678'
from itertools import combinations as combi

def create_combinations(*_):
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.Sheets[0] #first sheet
    data = tuple(("".join(map(str,c)),) for c in combi(range(1,9),6))
    sheet[:len(data), 0].DataArray = data

oui c’est bien ça mais sur 5 chiffres (je me suis effectivement trompé en en présentant 6).

from itertools import combinations as combi

def create_combinations(*_):
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.Sheets[0] #first sheet
    data = tuple(("".join(map(str,c)),) for c in combi(range(1,9), 5 ))
    sheet[:len(data), 0].DataArray = data

merci pour l’info, mais n’étant pas développeur, juste un simple utilisateur lambda de CALC je n’ai aucune idée de la façon d’utiliser ce que tu me proposes. Y aurait-il une fonction standard?

non il n’y a pas de fonction standard, mais tu peux utiliser apso.oxt pour gérer tes scripts python.

merci beaucoup et bonne journée. Jacques

Un peu simplifié, et plus facile à comprendre:

from itertools import combinations as combi

def create_combinations(*_):
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.Sheets[0] #first sheet
    data = tuple(("".join(c),) for c in combi("12345678", 5 ))
    sheet[f"A1:A{ len(data) }"].DataArray = data

au hasard via google … Calcul de Combinaison - K Parmi N - Générateur en Ligne
image

par contre gemini est un peu borné :expressionless:
image

mais en négociant, on y arrive :slight_smile:

bonne idée. Merci.

Bonjour,
Tu peux regarder avec la fonction ALEA.ENTRE.BORNES(ninimum;maximum).
Attention si tu ne veux pas que tes nombres soient recalculés, il faut ensuite faire un copier, coller les valeurs.
Claude