Bonjour à tous,

J'ai une problématique d'énumération lors d'un tirage. Lors d'un tirage (sans ordre et sans doublon) de k ou moins éléments parmi n éléments, quelles sont toutes les combinaisons ?
Par exemple, pour n = 4 et k = 3, le résultat devrait être de la forme :
1
2
3
4
[1,2] ([1,1] n'existe pas puisqu'il n'y a pas de doublons possible)
[1,3]
...
[3,4]
[1,2,3]
[1,2,4]
[1,3,4]
[2,3,4]

Pour le moment, j'ai trouvé une méthode alambiquée pour y parvenir mais que si n < 10 : je fais une énumération en base n-1 (au lieu de la base 10) et je supprime tous les nombres dont les chiffres ne sont pas dans un ordre strictement croissant. Le problème c'est que c'est très long (je peux avec des millions d'itérations pour trouver les 500 nombres qui m'intéressent) et que je ne gère pas les nombres à plus d'un chiffre (donc >= 10). Dans mon cas général, je voudrais pouvoir avoir bien plus que n = 10 (par exemple n = 18 et k = 17).

J'ai ensuite essayer d'imbriquer des boucles for et while avec des conditions if, mais je n'arrive pas à m'en sortir.
Est-ce que quelqu'un a une idée de méthode ? S'il faut il existe quelque chose de tout simple mais je ne trouve pas

Merci d'avance pour toutes vos suggestions