List *all* the tuples! Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) The PPCG Site design is on its way - help us make it awesome! Sandbox for Proposed ChallengesOutput a list of all rational numbersMoore IterationNaturally linear Diophantine equationsCo-primality and the number piRotate every row and column in a matrixConvert header levels to numbersASCII DandelionsPrint all decimalsParse a list of lists into a Sad-List2D Array Middle Point

Is there a concise way to say "all of the X, one of each"?

Antler Helmet: Can it work?

Does surprise arrest existing movement?

Check which numbers satisfy the condition [A*B*C = A! + B! + C!]

How do I keep my slimes from escaping their pens?

Letter Boxed validator

What would be the ideal power source for a cybernetic eye?

Why does Python start at index 1 when iterating an array backwards?

Should gear shift center itself while in neutral?

What does the "x" in "x86" represent?

Is it true that "carbohydrates are of no use for the basal metabolic need"?

When to stop saving and start investing?

What do you call a plan that's an alternative plan in case your initial plan fails?

What are 'alternative tunings' of a guitar and why would you use them? Doesn't it make it more difficult to play?

Withdrew £2800, but only £2000 shows as withdrawn on online banking; what are my obligations?

Do you forfeit tax refunds/credits if you aren't required to and don't file by April 15?

Marking the functions of a sentence: 'She may like it'

Why is black pepper both grey and black?

What is this single-engine low-wing propeller plane?

ListPlot join points by nearest neighbor rather than order

Why was the term "discrete" used in discrete logarithm?

How to motivate offshore teams and trust them to deliver?

Is above average number of years spent on PhD considered a red flag in future academia or industry positions?

Did Xerox really develop the first LAN?



List *all* the tuples!



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
The PPCG Site design is on its way - help us make it awesome!
Sandbox for Proposed ChallengesOutput a list of all rational numbersMoore IterationNaturally linear Diophantine equationsCo-primality and the number piRotate every row and column in a matrixConvert header levels to numbersASCII DandelionsPrint all decimalsParse a list of lists into a Sad-List2D Array Middle Point










18












$begingroup$


Write a program, given an input n, will generate all possible n-tuples using natural numbers.



n=1
(1),(2),(3),(4),(5),(6)...

n=2
(1,1),(1,2),(2,1),(2,2),(1,3),(3,1),(2,3),(3,2),(3,3)...

n=6
(1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1)...


  • The output may be in any order that does not break any other rules.

  • The program must be written to run forever and list all applicable tuples exactly once, in theory.

    • In reality, your program will reach your integer type's limit and crash. This is acceptable as long the program would run infinitely long if only your integer type was unlimited.

    • Each valid tuple must be listed within finite time, if only the program were allowed to run that long.


  • The output may, at your option, include zeroes in addition to the natural numbers.

  • You may choose your program's output format for your convenience, as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)

  • Code-golf rules apply, shortest program wins.

Thanks to "Artemis Fowl" for feedback during the sandbox phase.










share|improve this question











$endgroup$











  • $begingroup$
    For n=6, is it acceptable to produce 0,0 .. 5,5 or does it have to include 6,6?
    $endgroup$
    – Phil H
    7 hours ago










  • $begingroup$
    For n=6, the 6-tuples are (1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1) etc. I'll add this to the the examples.
    $endgroup$
    – billpg
    7 hours ago






  • 1




    $begingroup$
    Each valid tuple must be listed within finite time, if only the program were allowed to run that long. .. Does this contradict the output being in any order? i.e what if my order is (1,1),(2,1),(3,1)...(n,1) and only once I've gone through every natural number will i print (1,2)
    $endgroup$
    – Expired Data
    7 hours ago






  • 1




    $begingroup$
    Must we output as we go or would a function which yields an infinite list at the end of time sufficient?
    $endgroup$
    – Jonathan Allan
    3 hours ago






  • 3




    $begingroup$
    "You may choose your program's output format for your convenience, as long as the separation between tuples and numbers inside each tuple is clear and consistent" - may we output differing (albeit consistently differing) separation (e.g. like this)?
    $endgroup$
    – Jonathan Allan
    3 hours ago















18












$begingroup$


Write a program, given an input n, will generate all possible n-tuples using natural numbers.



n=1
(1),(2),(3),(4),(5),(6)...

n=2
(1,1),(1,2),(2,1),(2,2),(1,3),(3,1),(2,3),(3,2),(3,3)...

n=6
(1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1)...


  • The output may be in any order that does not break any other rules.

  • The program must be written to run forever and list all applicable tuples exactly once, in theory.

    • In reality, your program will reach your integer type's limit and crash. This is acceptable as long the program would run infinitely long if only your integer type was unlimited.

    • Each valid tuple must be listed within finite time, if only the program were allowed to run that long.


  • The output may, at your option, include zeroes in addition to the natural numbers.

  • You may choose your program's output format for your convenience, as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)

  • Code-golf rules apply, shortest program wins.

Thanks to "Artemis Fowl" for feedback during the sandbox phase.










share|improve this question











$endgroup$











  • $begingroup$
    For n=6, is it acceptable to produce 0,0 .. 5,5 or does it have to include 6,6?
    $endgroup$
    – Phil H
    7 hours ago










  • $begingroup$
    For n=6, the 6-tuples are (1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1) etc. I'll add this to the the examples.
    $endgroup$
    – billpg
    7 hours ago






  • 1




    $begingroup$
    Each valid tuple must be listed within finite time, if only the program were allowed to run that long. .. Does this contradict the output being in any order? i.e what if my order is (1,1),(2,1),(3,1)...(n,1) and only once I've gone through every natural number will i print (1,2)
    $endgroup$
    – Expired Data
    7 hours ago






  • 1




    $begingroup$
    Must we output as we go or would a function which yields an infinite list at the end of time sufficient?
    $endgroup$
    – Jonathan Allan
    3 hours ago






  • 3




    $begingroup$
    "You may choose your program's output format for your convenience, as long as the separation between tuples and numbers inside each tuple is clear and consistent" - may we output differing (albeit consistently differing) separation (e.g. like this)?
    $endgroup$
    – Jonathan Allan
    3 hours ago













18












18








18


2



$begingroup$


Write a program, given an input n, will generate all possible n-tuples using natural numbers.



n=1
(1),(2),(3),(4),(5),(6)...

n=2
(1,1),(1,2),(2,1),(2,2),(1,3),(3,1),(2,3),(3,2),(3,3)...

n=6
(1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1)...


  • The output may be in any order that does not break any other rules.

  • The program must be written to run forever and list all applicable tuples exactly once, in theory.

    • In reality, your program will reach your integer type's limit and crash. This is acceptable as long the program would run infinitely long if only your integer type was unlimited.

    • Each valid tuple must be listed within finite time, if only the program were allowed to run that long.


  • The output may, at your option, include zeroes in addition to the natural numbers.

  • You may choose your program's output format for your convenience, as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)

  • Code-golf rules apply, shortest program wins.

Thanks to "Artemis Fowl" for feedback during the sandbox phase.










share|improve this question











$endgroup$




Write a program, given an input n, will generate all possible n-tuples using natural numbers.



n=1
(1),(2),(3),(4),(5),(6)...

n=2
(1,1),(1,2),(2,1),(2,2),(1,3),(3,1),(2,3),(3,2),(3,3)...

n=6
(1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1)...


  • The output may be in any order that does not break any other rules.

  • The program must be written to run forever and list all applicable tuples exactly once, in theory.

    • In reality, your program will reach your integer type's limit and crash. This is acceptable as long the program would run infinitely long if only your integer type was unlimited.

    • Each valid tuple must be listed within finite time, if only the program were allowed to run that long.


  • The output may, at your option, include zeroes in addition to the natural numbers.

  • You may choose your program's output format for your convenience, as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)

  • Code-golf rules apply, shortest program wins.

Thanks to "Artemis Fowl" for feedback during the sandbox phase.







code-golf sequence






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 7 hours ago







billpg

















asked 7 hours ago









billpgbillpg

9601929




9601929











  • $begingroup$
    For n=6, is it acceptable to produce 0,0 .. 5,5 or does it have to include 6,6?
    $endgroup$
    – Phil H
    7 hours ago










  • $begingroup$
    For n=6, the 6-tuples are (1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1) etc. I'll add this to the the examples.
    $endgroup$
    – billpg
    7 hours ago






  • 1




    $begingroup$
    Each valid tuple must be listed within finite time, if only the program were allowed to run that long. .. Does this contradict the output being in any order? i.e what if my order is (1,1),(2,1),(3,1)...(n,1) and only once I've gone through every natural number will i print (1,2)
    $endgroup$
    – Expired Data
    7 hours ago






  • 1




    $begingroup$
    Must we output as we go or would a function which yields an infinite list at the end of time sufficient?
    $endgroup$
    – Jonathan Allan
    3 hours ago






  • 3




    $begingroup$
    "You may choose your program's output format for your convenience, as long as the separation between tuples and numbers inside each tuple is clear and consistent" - may we output differing (albeit consistently differing) separation (e.g. like this)?
    $endgroup$
    – Jonathan Allan
    3 hours ago
















  • $begingroup$
    For n=6, is it acceptable to produce 0,0 .. 5,5 or does it have to include 6,6?
    $endgroup$
    – Phil H
    7 hours ago










  • $begingroup$
    For n=6, the 6-tuples are (1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1) etc. I'll add this to the the examples.
    $endgroup$
    – billpg
    7 hours ago






  • 1




    $begingroup$
    Each valid tuple must be listed within finite time, if only the program were allowed to run that long. .. Does this contradict the output being in any order? i.e what if my order is (1,1),(2,1),(3,1)...(n,1) and only once I've gone through every natural number will i print (1,2)
    $endgroup$
    – Expired Data
    7 hours ago






  • 1




    $begingroup$
    Must we output as we go or would a function which yields an infinite list at the end of time sufficient?
    $endgroup$
    – Jonathan Allan
    3 hours ago






  • 3




    $begingroup$
    "You may choose your program's output format for your convenience, as long as the separation between tuples and numbers inside each tuple is clear and consistent" - may we output differing (albeit consistently differing) separation (e.g. like this)?
    $endgroup$
    – Jonathan Allan
    3 hours ago















$begingroup$
For n=6, is it acceptable to produce 0,0 .. 5,5 or does it have to include 6,6?
$endgroup$
– Phil H
7 hours ago




$begingroup$
For n=6, is it acceptable to produce 0,0 .. 5,5 or does it have to include 6,6?
$endgroup$
– Phil H
7 hours ago












$begingroup$
For n=6, the 6-tuples are (1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1) etc. I'll add this to the the examples.
$endgroup$
– billpg
7 hours ago




$begingroup$
For n=6, the 6-tuples are (1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1) etc. I'll add this to the the examples.
$endgroup$
– billpg
7 hours ago




1




1




$begingroup$
Each valid tuple must be listed within finite time, if only the program were allowed to run that long. .. Does this contradict the output being in any order? i.e what if my order is (1,1),(2,1),(3,1)...(n,1) and only once I've gone through every natural number will i print (1,2)
$endgroup$
– Expired Data
7 hours ago




$begingroup$
Each valid tuple must be listed within finite time, if only the program were allowed to run that long. .. Does this contradict the output being in any order? i.e what if my order is (1,1),(2,1),(3,1)...(n,1) and only once I've gone through every natural number will i print (1,2)
$endgroup$
– Expired Data
7 hours ago




1




1




$begingroup$
Must we output as we go or would a function which yields an infinite list at the end of time sufficient?
$endgroup$
– Jonathan Allan
3 hours ago




$begingroup$
Must we output as we go or would a function which yields an infinite list at the end of time sufficient?
$endgroup$
– Jonathan Allan
3 hours ago




3




3




$begingroup$
"You may choose your program's output format for your convenience, as long as the separation between tuples and numbers inside each tuple is clear and consistent" - may we output differing (albeit consistently differing) separation (e.g. like this)?
$endgroup$
– Jonathan Allan
3 hours ago




$begingroup$
"You may choose your program's output format for your convenience, as long as the separation between tuples and numbers inside each tuple is clear and consistent" - may we output differing (albeit consistently differing) separation (e.g. like this)?
$endgroup$
– Jonathan Allan
3 hours ago










12 Answers
12






active

oldest

votes


















8












$begingroup$


Haskell, 62 bytes





([1..]>>=).(!)
0!s=[[]|s<1]
n!s=[a:p|a<-[1..s],p<-(n-1)!(s-a)]


Try it online!



n!s generates all the n-tuples that sum to s.



Then the answer is ([1..]>>=).(!), i.e. n -> [t | s<-[1..], t<-n!s].



This is a function mapping an integer n to an infinite lazy list of tuples (lists of integers).






share|improve this answer









$endgroup$




















    4












    $begingroup$


    Perl 6, 37 bytes





    $++.polymod(1+$++ xx $_-1).say xx *


    Try it online!



    Essentially runs polymod with as many entries as needed, where the modulo is always greater than the input, i.e. 0.polymod( 1,1,1 ), 1.polymod( 2,2,2 ) etc. That way the digit is always within the range. Perl6 won't let me modulo infinity...






    share|improve this answer









    $endgroup$








    • 1




      $begingroup$
      This doesn't list every tuple exactly once (for instance, (0, 1, 0, 0) is not listed).
      $endgroup$
      – bb94
      1 hour ago


















    4












    $begingroup$


    Husk, 2 bytes



    πN


    Try it online!



    Explanation



    N is the infinite list of natural numbers [1,2,3,4,...
    π is Cartesian power.
    Result is an infinite list of lists.
    Each list of the desired length occurs exactly once because π is cool like that.
    Input and output are implicit.






    share|improve this answer









    $endgroup$








    • 1




      $begingroup$
      Wow, and this doesn't do [1,1,n] either. Is there a pattern to the order it outputs?
      $endgroup$
      – billpg
      1 hour ago


















    2












    $begingroup$


    Brachylog (v2), 9 bytes



    ~l.ℕᵐ+≜∧≜


    Try it online!



    This is an infinite generator that generates all possible tuples. The TIO link has a header that uses the generator to generate 1000 elements and prints them (but the generator could continue indefinitely if I asked for that instead; Brachylog's integers are unbounded).



    It feels like there should be a terser way, but there are a lot of constraints and this is the tersest I can fit them into a single program.



    Explanation



    ~l.ℕᵐ+≜∧≜
    . Generate
    ≜ all explicit
    ~l lists whose length is the input
    ᵐ for which every element
    ℕ is non-negative
    + and whose sum
    ≜ is used to order the lists (closest to zero first)
    ∧ [remove unwanted implicit constraint]


    Incidentally, it strikes me as interesting just how different my explanations of the two are, despite them doing the exact same thing from Brachylog's point of view. The first is the first nondeterministic predicate in the program, so it sets the order of results; in this case, it calculates all possible explicit values for the sum of the list in the order 0, 1, 2, 3…, and is being used to ensure that the lists are output in order of their sum (this ensures that each possible list appears after a finite amount of output). The second is used to calculate all the explicit possibilities for the list (rather than outputting a formula specifying how the elements of the list relate to each other).






    share|improve this answer











    $endgroup$












    • $begingroup$
      ↰₁ẉ⊥ is also a good header, for printing infinitely.
      $endgroup$
      – Unrelated String
      35 mins ago










    • $begingroup$
      Although I do feel like this may not actually be a full answer, since any single independent invocation of this predicate will just generate zeroes, with the "generate all" part being done by the or the in the header.
      $endgroup$
      – Unrelated String
      29 mins ago


















    1












    $begingroup$

    Pyth - 10 bytes



    Loops through all x, and takes [1..x]^n. This makes duplicates, so only keeps ones that are new to that x, aka contain x in them. The formatting is a little weird, but it can be made standard with one more byte, .V1jf}bT^Sb



    .V1f}bT^Sb


    Try it online.






    share|improve this answer











    $endgroup$




















      1












      $begingroup$


      Jelly, 10 (9?) bytes



      9 if we may output using non-consistent separation (which I have enquired about) -- removal of the .



      ‘ɼṗ³ċƇ®Ṅ€ß


      Try it online!



      How?



      ‘ɼṗ³ċƇ®Ṅ€ß - Main Link: some argument, x (initially equal to n, but unused)
      ɼ - recall v from the register (initially 0), then set register to, and yield, f(v)
      ‘ - f = increment
      - (i.e. v=v+1)
      ³ - program's third command line argument (1st program argument) = n
      ṗ - (implicit range of [1..v]) Cartesian power (n)
      - (i.e. all tuples of length n with items in [1..v])
      Ƈ - filter keep those for which:
      ċ - count
      ® - recall from register
      - (i.e. keep only those containing v)
      Ṅ€ - print €ach
      ß - call this Link with the same arity
      - (i.e. call Main(theFilteredList), again the argument is not actually used)





      share|improve this answer











      $endgroup$








      • 1




        $begingroup$
        Based on "as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)" I assumed it wasn't allowed and the is required, but let's wait what OP has to say.
        $endgroup$
        – Kevin Cruijssen
        2 hours ago


















      1












      $begingroup$


      05AB1E, 15 11 bytes



      [¼¾LIãvy¾å—


      -4 bytes by creating a port of @Maltysen's Pyth answer.



      Try it online.



      Explanation:





      [ # Start an infinite loop:
      ¼ # Increase the counter_variable by 1 (0 by default)
      ¾L # Create a list in the range [1, counter_variable]
      Iã # Take the cartesian power of this list with the input
      v # Loop over each list `y` in this list of lists:
      y¾å # If list `y` contains the counter_variable:
      — # Print list `y` with trailing newline





      share|improve this answer











      $endgroup$








      • 2




        $begingroup$
        When will the program get to [1,2,1]? Remember it has to be within finite time.
        $endgroup$
        – billpg
        7 hours ago










      • $begingroup$
        @billpg Should be fixed now.
        $endgroup$
        – Kevin Cruijssen
        5 hours ago


















      0












      $begingroup$


      VDM-SL, 51 bytes



      g(i)==if i=0thenelse[x]^y


      Recursive set comprehension with sequence concatenation..



      Not on TIO, you could run in a program (if you turn on limits for nat type or it wont terminate):



      functions 
      g:nat->set of ?
      g(i)==if i=0thenelse[x]^y


      Includes the optional 0s in answer otherwise it would be 52 bytes binding on nat1






      share|improve this answer









      $endgroup$




















        0












        $begingroup$


        Wolfram Language (Mathematica), 131 bytes



        While[0<1,If[a~FreeQ~#,Print@#]&/@(b=Table[Select[Range@t~Tuples~s,Tr@#==k&],k,t,t(s=#)]~Flatten~1);a=a~Join~b;t++]&
        t=1
        a=


        Try it online!






        share|improve this answer











        $endgroup$




















          0












          $begingroup$

          Python3 (56 characters)



          This runs, but never outputs/returns any values, because the permutations function keeps pulling numbers from count. But in theory, this would return the requested permutations.



          from itertools import*
          lambda n:permutations(count(1),n)


          Proof that this works for limited integer range:



          from itertools import*
          l = lambda n: permutations(range(1, 10), n)
          print(list(l(3))) # returns all permutations of (1, 2, 3, ..., 10) of length 3





          share|improve this answer









          $endgroup$












          • $begingroup$
            This is not a solution :-( The last element of the tuple will increase forever, so the other elements will never be reached. ("After infinity" does not count.) Also you never visit (1,1,1), etc., even in the demo case.
            $endgroup$
            – alexis
            17 mins ago


















          0












          $begingroup$


          MATL, 16 bytes



          `@:GZ^t!Xs@=Y)DT


          Tuples are ordered by increasing sum, and within a given sum they are ordered lexicographically.



          Try it online!






          share|improve this answer











          $endgroup$












          • $begingroup$
            You are supposed to take input
            $endgroup$
            – H.PWiz
            4 hours ago










          • $begingroup$
            @H.PWiz Thanks. I got it wrong
            $endgroup$
            – Luis Mendo
            4 hours ago










          • $begingroup$
            @H.PWiz Solved now
            $endgroup$
            – Luis Mendo
            30 mins ago


















          0












          $begingroup$


          Python 2, 126 119 bytes





          n=input()
          m=i=0;p=2**~-n
          while 1:
          b=map(len,bin(i+p)[3:].split('0'));i+=1
          if len(b)==n:print b
          if i==p:i=0;m+=1;p*=2


          Try it online!



          Construct the ordered partitions of m into n bins, for m = 0,1,2,3,... by selecting for binary numbers with n 0s and m 1s.






          share|improve this answer











          $endgroup$













            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "200"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f183225%2flist-all-the-tuples%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            12 Answers
            12






            active

            oldest

            votes








            12 Answers
            12






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            8












            $begingroup$


            Haskell, 62 bytes





            ([1..]>>=).(!)
            0!s=[[]|s<1]
            n!s=[a:p|a<-[1..s],p<-(n-1)!(s-a)]


            Try it online!



            n!s generates all the n-tuples that sum to s.



            Then the answer is ([1..]>>=).(!), i.e. n -> [t | s<-[1..], t<-n!s].



            This is a function mapping an integer n to an infinite lazy list of tuples (lists of integers).






            share|improve this answer









            $endgroup$

















              8












              $begingroup$


              Haskell, 62 bytes





              ([1..]>>=).(!)
              0!s=[[]|s<1]
              n!s=[a:p|a<-[1..s],p<-(n-1)!(s-a)]


              Try it online!



              n!s generates all the n-tuples that sum to s.



              Then the answer is ([1..]>>=).(!), i.e. n -> [t | s<-[1..], t<-n!s].



              This is a function mapping an integer n to an infinite lazy list of tuples (lists of integers).






              share|improve this answer









              $endgroup$















                8












                8








                8





                $begingroup$


                Haskell, 62 bytes





                ([1..]>>=).(!)
                0!s=[[]|s<1]
                n!s=[a:p|a<-[1..s],p<-(n-1)!(s-a)]


                Try it online!



                n!s generates all the n-tuples that sum to s.



                Then the answer is ([1..]>>=).(!), i.e. n -> [t | s<-[1..], t<-n!s].



                This is a function mapping an integer n to an infinite lazy list of tuples (lists of integers).






                share|improve this answer









                $endgroup$




                Haskell, 62 bytes





                ([1..]>>=).(!)
                0!s=[[]|s<1]
                n!s=[a:p|a<-[1..s],p<-(n-1)!(s-a)]


                Try it online!



                n!s generates all the n-tuples that sum to s.



                Then the answer is ([1..]>>=).(!), i.e. n -> [t | s<-[1..], t<-n!s].



                This is a function mapping an integer n to an infinite lazy list of tuples (lists of integers).







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 7 hours ago









                LynnLynn

                50.9k899233




                50.9k899233





















                    4












                    $begingroup$


                    Perl 6, 37 bytes





                    $++.polymod(1+$++ xx $_-1).say xx *


                    Try it online!



                    Essentially runs polymod with as many entries as needed, where the modulo is always greater than the input, i.e. 0.polymod( 1,1,1 ), 1.polymod( 2,2,2 ) etc. That way the digit is always within the range. Perl6 won't let me modulo infinity...






                    share|improve this answer









                    $endgroup$








                    • 1




                      $begingroup$
                      This doesn't list every tuple exactly once (for instance, (0, 1, 0, 0) is not listed).
                      $endgroup$
                      – bb94
                      1 hour ago















                    4












                    $begingroup$


                    Perl 6, 37 bytes





                    $++.polymod(1+$++ xx $_-1).say xx *


                    Try it online!



                    Essentially runs polymod with as many entries as needed, where the modulo is always greater than the input, i.e. 0.polymod( 1,1,1 ), 1.polymod( 2,2,2 ) etc. That way the digit is always within the range. Perl6 won't let me modulo infinity...






                    share|improve this answer









                    $endgroup$








                    • 1




                      $begingroup$
                      This doesn't list every tuple exactly once (for instance, (0, 1, 0, 0) is not listed).
                      $endgroup$
                      – bb94
                      1 hour ago













                    4












                    4








                    4





                    $begingroup$


                    Perl 6, 37 bytes





                    $++.polymod(1+$++ xx $_-1).say xx *


                    Try it online!



                    Essentially runs polymod with as many entries as needed, where the modulo is always greater than the input, i.e. 0.polymod( 1,1,1 ), 1.polymod( 2,2,2 ) etc. That way the digit is always within the range. Perl6 won't let me modulo infinity...






                    share|improve this answer









                    $endgroup$




                    Perl 6, 37 bytes





                    $++.polymod(1+$++ xx $_-1).say xx *


                    Try it online!



                    Essentially runs polymod with as many entries as needed, where the modulo is always greater than the input, i.e. 0.polymod( 1,1,1 ), 1.polymod( 2,2,2 ) etc. That way the digit is always within the range. Perl6 won't let me modulo infinity...







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 6 hours ago









                    Phil HPhil H

                    1,162817




                    1,162817







                    • 1




                      $begingroup$
                      This doesn't list every tuple exactly once (for instance, (0, 1, 0, 0) is not listed).
                      $endgroup$
                      – bb94
                      1 hour ago












                    • 1




                      $begingroup$
                      This doesn't list every tuple exactly once (for instance, (0, 1, 0, 0) is not listed).
                      $endgroup$
                      – bb94
                      1 hour ago







                    1




                    1




                    $begingroup$
                    This doesn't list every tuple exactly once (for instance, (0, 1, 0, 0) is not listed).
                    $endgroup$
                    – bb94
                    1 hour ago




                    $begingroup$
                    This doesn't list every tuple exactly once (for instance, (0, 1, 0, 0) is not listed).
                    $endgroup$
                    – bb94
                    1 hour ago











                    4












                    $begingroup$


                    Husk, 2 bytes



                    πN


                    Try it online!



                    Explanation



                    N is the infinite list of natural numbers [1,2,3,4,...
                    π is Cartesian power.
                    Result is an infinite list of lists.
                    Each list of the desired length occurs exactly once because π is cool like that.
                    Input and output are implicit.






                    share|improve this answer









                    $endgroup$








                    • 1




                      $begingroup$
                      Wow, and this doesn't do [1,1,n] either. Is there a pattern to the order it outputs?
                      $endgroup$
                      – billpg
                      1 hour ago















                    4












                    $begingroup$


                    Husk, 2 bytes



                    πN


                    Try it online!



                    Explanation



                    N is the infinite list of natural numbers [1,2,3,4,...
                    π is Cartesian power.
                    Result is an infinite list of lists.
                    Each list of the desired length occurs exactly once because π is cool like that.
                    Input and output are implicit.






                    share|improve this answer









                    $endgroup$








                    • 1




                      $begingroup$
                      Wow, and this doesn't do [1,1,n] either. Is there a pattern to the order it outputs?
                      $endgroup$
                      – billpg
                      1 hour ago













                    4












                    4








                    4





                    $begingroup$


                    Husk, 2 bytes



                    πN


                    Try it online!



                    Explanation



                    N is the infinite list of natural numbers [1,2,3,4,...
                    π is Cartesian power.
                    Result is an infinite list of lists.
                    Each list of the desired length occurs exactly once because π is cool like that.
                    Input and output are implicit.






                    share|improve this answer









                    $endgroup$




                    Husk, 2 bytes



                    πN


                    Try it online!



                    Explanation



                    N is the infinite list of natural numbers [1,2,3,4,...
                    π is Cartesian power.
                    Result is an infinite list of lists.
                    Each list of the desired length occurs exactly once because π is cool like that.
                    Input and output are implicit.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 1 hour ago









                    ZgarbZgarb

                    26.6k462230




                    26.6k462230







                    • 1




                      $begingroup$
                      Wow, and this doesn't do [1,1,n] either. Is there a pattern to the order it outputs?
                      $endgroup$
                      – billpg
                      1 hour ago












                    • 1




                      $begingroup$
                      Wow, and this doesn't do [1,1,n] either. Is there a pattern to the order it outputs?
                      $endgroup$
                      – billpg
                      1 hour ago







                    1




                    1




                    $begingroup$
                    Wow, and this doesn't do [1,1,n] either. Is there a pattern to the order it outputs?
                    $endgroup$
                    – billpg
                    1 hour ago




                    $begingroup$
                    Wow, and this doesn't do [1,1,n] either. Is there a pattern to the order it outputs?
                    $endgroup$
                    – billpg
                    1 hour ago











                    2












                    $begingroup$


                    Brachylog (v2), 9 bytes



                    ~l.ℕᵐ+≜∧≜


                    Try it online!



                    This is an infinite generator that generates all possible tuples. The TIO link has a header that uses the generator to generate 1000 elements and prints them (but the generator could continue indefinitely if I asked for that instead; Brachylog's integers are unbounded).



                    It feels like there should be a terser way, but there are a lot of constraints and this is the tersest I can fit them into a single program.



                    Explanation



                    ~l.ℕᵐ+≜∧≜
                    . Generate
                    ≜ all explicit
                    ~l lists whose length is the input
                    ᵐ for which every element
                    ℕ is non-negative
                    + and whose sum
                    ≜ is used to order the lists (closest to zero first)
                    ∧ [remove unwanted implicit constraint]


                    Incidentally, it strikes me as interesting just how different my explanations of the two are, despite them doing the exact same thing from Brachylog's point of view. The first is the first nondeterministic predicate in the program, so it sets the order of results; in this case, it calculates all possible explicit values for the sum of the list in the order 0, 1, 2, 3…, and is being used to ensure that the lists are output in order of their sum (this ensures that each possible list appears after a finite amount of output). The second is used to calculate all the explicit possibilities for the list (rather than outputting a formula specifying how the elements of the list relate to each other).






                    share|improve this answer











                    $endgroup$












                    • $begingroup$
                      ↰₁ẉ⊥ is also a good header, for printing infinitely.
                      $endgroup$
                      – Unrelated String
                      35 mins ago










                    • $begingroup$
                      Although I do feel like this may not actually be a full answer, since any single independent invocation of this predicate will just generate zeroes, with the "generate all" part being done by the or the in the header.
                      $endgroup$
                      – Unrelated String
                      29 mins ago















                    2












                    $begingroup$


                    Brachylog (v2), 9 bytes



                    ~l.ℕᵐ+≜∧≜


                    Try it online!



                    This is an infinite generator that generates all possible tuples. The TIO link has a header that uses the generator to generate 1000 elements and prints them (but the generator could continue indefinitely if I asked for that instead; Brachylog's integers are unbounded).



                    It feels like there should be a terser way, but there are a lot of constraints and this is the tersest I can fit them into a single program.



                    Explanation



                    ~l.ℕᵐ+≜∧≜
                    . Generate
                    ≜ all explicit
                    ~l lists whose length is the input
                    ᵐ for which every element
                    ℕ is non-negative
                    + and whose sum
                    ≜ is used to order the lists (closest to zero first)
                    ∧ [remove unwanted implicit constraint]


                    Incidentally, it strikes me as interesting just how different my explanations of the two are, despite them doing the exact same thing from Brachylog's point of view. The first is the first nondeterministic predicate in the program, so it sets the order of results; in this case, it calculates all possible explicit values for the sum of the list in the order 0, 1, 2, 3…, and is being used to ensure that the lists are output in order of their sum (this ensures that each possible list appears after a finite amount of output). The second is used to calculate all the explicit possibilities for the list (rather than outputting a formula specifying how the elements of the list relate to each other).






                    share|improve this answer











                    $endgroup$












                    • $begingroup$
                      ↰₁ẉ⊥ is also a good header, for printing infinitely.
                      $endgroup$
                      – Unrelated String
                      35 mins ago










                    • $begingroup$
                      Although I do feel like this may not actually be a full answer, since any single independent invocation of this predicate will just generate zeroes, with the "generate all" part being done by the or the in the header.
                      $endgroup$
                      – Unrelated String
                      29 mins ago













                    2












                    2








                    2





                    $begingroup$


                    Brachylog (v2), 9 bytes



                    ~l.ℕᵐ+≜∧≜


                    Try it online!



                    This is an infinite generator that generates all possible tuples. The TIO link has a header that uses the generator to generate 1000 elements and prints them (but the generator could continue indefinitely if I asked for that instead; Brachylog's integers are unbounded).



                    It feels like there should be a terser way, but there are a lot of constraints and this is the tersest I can fit them into a single program.



                    Explanation



                    ~l.ℕᵐ+≜∧≜
                    . Generate
                    ≜ all explicit
                    ~l lists whose length is the input
                    ᵐ for which every element
                    ℕ is non-negative
                    + and whose sum
                    ≜ is used to order the lists (closest to zero first)
                    ∧ [remove unwanted implicit constraint]


                    Incidentally, it strikes me as interesting just how different my explanations of the two are, despite them doing the exact same thing from Brachylog's point of view. The first is the first nondeterministic predicate in the program, so it sets the order of results; in this case, it calculates all possible explicit values for the sum of the list in the order 0, 1, 2, 3…, and is being used to ensure that the lists are output in order of their sum (this ensures that each possible list appears after a finite amount of output). The second is used to calculate all the explicit possibilities for the list (rather than outputting a formula specifying how the elements of the list relate to each other).






                    share|improve this answer











                    $endgroup$




                    Brachylog (v2), 9 bytes



                    ~l.ℕᵐ+≜∧≜


                    Try it online!



                    This is an infinite generator that generates all possible tuples. The TIO link has a header that uses the generator to generate 1000 elements and prints them (but the generator could continue indefinitely if I asked for that instead; Brachylog's integers are unbounded).



                    It feels like there should be a terser way, but there are a lot of constraints and this is the tersest I can fit them into a single program.



                    Explanation



                    ~l.ℕᵐ+≜∧≜
                    . Generate
                    ≜ all explicit
                    ~l lists whose length is the input
                    ᵐ for which every element
                    ℕ is non-negative
                    + and whose sum
                    ≜ is used to order the lists (closest to zero first)
                    ∧ [remove unwanted implicit constraint]


                    Incidentally, it strikes me as interesting just how different my explanations of the two are, despite them doing the exact same thing from Brachylog's point of view. The first is the first nondeterministic predicate in the program, so it sets the order of results; in this case, it calculates all possible explicit values for the sum of the list in the order 0, 1, 2, 3…, and is being used to ensure that the lists are output in order of their sum (this ensures that each possible list appears after a finite amount of output). The second is used to calculate all the explicit possibilities for the list (rather than outputting a formula specifying how the elements of the list relate to each other).







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    answered 2 hours ago


























                    community wiki





                    ais523












                    • $begingroup$
                      ↰₁ẉ⊥ is also a good header, for printing infinitely.
                      $endgroup$
                      – Unrelated String
                      35 mins ago










                    • $begingroup$
                      Although I do feel like this may not actually be a full answer, since any single independent invocation of this predicate will just generate zeroes, with the "generate all" part being done by the or the in the header.
                      $endgroup$
                      – Unrelated String
                      29 mins ago
















                    • $begingroup$
                      ↰₁ẉ⊥ is also a good header, for printing infinitely.
                      $endgroup$
                      – Unrelated String
                      35 mins ago










                    • $begingroup$
                      Although I do feel like this may not actually be a full answer, since any single independent invocation of this predicate will just generate zeroes, with the "generate all" part being done by the or the in the header.
                      $endgroup$
                      – Unrelated String
                      29 mins ago















                    $begingroup$
                    ↰₁ẉ⊥ is also a good header, for printing infinitely.
                    $endgroup$
                    – Unrelated String
                    35 mins ago




                    $begingroup$
                    ↰₁ẉ⊥ is also a good header, for printing infinitely.
                    $endgroup$
                    – Unrelated String
                    35 mins ago












                    $begingroup$
                    Although I do feel like this may not actually be a full answer, since any single independent invocation of this predicate will just generate zeroes, with the "generate all" part being done by the or the in the header.
                    $endgroup$
                    – Unrelated String
                    29 mins ago




                    $begingroup$
                    Although I do feel like this may not actually be a full answer, since any single independent invocation of this predicate will just generate zeroes, with the "generate all" part being done by the or the in the header.
                    $endgroup$
                    – Unrelated String
                    29 mins ago











                    1












                    $begingroup$

                    Pyth - 10 bytes



                    Loops through all x, and takes [1..x]^n. This makes duplicates, so only keeps ones that are new to that x, aka contain x in them. The formatting is a little weird, but it can be made standard with one more byte, .V1jf}bT^Sb



                    .V1f}bT^Sb


                    Try it online.






                    share|improve this answer











                    $endgroup$

















                      1












                      $begingroup$

                      Pyth - 10 bytes



                      Loops through all x, and takes [1..x]^n. This makes duplicates, so only keeps ones that are new to that x, aka contain x in them. The formatting is a little weird, but it can be made standard with one more byte, .V1jf}bT^Sb



                      .V1f}bT^Sb


                      Try it online.






                      share|improve this answer











                      $endgroup$















                        1












                        1








                        1





                        $begingroup$

                        Pyth - 10 bytes



                        Loops through all x, and takes [1..x]^n. This makes duplicates, so only keeps ones that are new to that x, aka contain x in them. The formatting is a little weird, but it can be made standard with one more byte, .V1jf}bT^Sb



                        .V1f}bT^Sb


                        Try it online.






                        share|improve this answer











                        $endgroup$



                        Pyth - 10 bytes



                        Loops through all x, and takes [1..x]^n. This makes duplicates, so only keeps ones that are new to that x, aka contain x in them. The formatting is a little weird, but it can be made standard with one more byte, .V1jf}bT^Sb



                        .V1f}bT^Sb


                        Try it online.







                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited 3 hours ago

























                        answered 3 hours ago









                        MaltysenMaltysen

                        21.4k445116




                        21.4k445116





















                            1












                            $begingroup$


                            Jelly, 10 (9?) bytes



                            9 if we may output using non-consistent separation (which I have enquired about) -- removal of the .



                            ‘ɼṗ³ċƇ®Ṅ€ß


                            Try it online!



                            How?



                            ‘ɼṗ³ċƇ®Ṅ€ß - Main Link: some argument, x (initially equal to n, but unused)
                            ɼ - recall v from the register (initially 0), then set register to, and yield, f(v)
                            ‘ - f = increment
                            - (i.e. v=v+1)
                            ³ - program's third command line argument (1st program argument) = n
                            ṗ - (implicit range of [1..v]) Cartesian power (n)
                            - (i.e. all tuples of length n with items in [1..v])
                            Ƈ - filter keep those for which:
                            ċ - count
                            ® - recall from register
                            - (i.e. keep only those containing v)
                            Ṅ€ - print €ach
                            ß - call this Link with the same arity
                            - (i.e. call Main(theFilteredList), again the argument is not actually used)





                            share|improve this answer











                            $endgroup$








                            • 1




                              $begingroup$
                              Based on "as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)" I assumed it wasn't allowed and the is required, but let's wait what OP has to say.
                              $endgroup$
                              – Kevin Cruijssen
                              2 hours ago















                            1












                            $begingroup$


                            Jelly, 10 (9?) bytes



                            9 if we may output using non-consistent separation (which I have enquired about) -- removal of the .



                            ‘ɼṗ³ċƇ®Ṅ€ß


                            Try it online!



                            How?



                            ‘ɼṗ³ċƇ®Ṅ€ß - Main Link: some argument, x (initially equal to n, but unused)
                            ɼ - recall v from the register (initially 0), then set register to, and yield, f(v)
                            ‘ - f = increment
                            - (i.e. v=v+1)
                            ³ - program's third command line argument (1st program argument) = n
                            ṗ - (implicit range of [1..v]) Cartesian power (n)
                            - (i.e. all tuples of length n with items in [1..v])
                            Ƈ - filter keep those for which:
                            ċ - count
                            ® - recall from register
                            - (i.e. keep only those containing v)
                            Ṅ€ - print €ach
                            ß - call this Link with the same arity
                            - (i.e. call Main(theFilteredList), again the argument is not actually used)





                            share|improve this answer











                            $endgroup$








                            • 1




                              $begingroup$
                              Based on "as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)" I assumed it wasn't allowed and the is required, but let's wait what OP has to say.
                              $endgroup$
                              – Kevin Cruijssen
                              2 hours ago













                            1












                            1








                            1





                            $begingroup$


                            Jelly, 10 (9?) bytes



                            9 if we may output using non-consistent separation (which I have enquired about) -- removal of the .



                            ‘ɼṗ³ċƇ®Ṅ€ß


                            Try it online!



                            How?



                            ‘ɼṗ³ċƇ®Ṅ€ß - Main Link: some argument, x (initially equal to n, but unused)
                            ɼ - recall v from the register (initially 0), then set register to, and yield, f(v)
                            ‘ - f = increment
                            - (i.e. v=v+1)
                            ³ - program's third command line argument (1st program argument) = n
                            ṗ - (implicit range of [1..v]) Cartesian power (n)
                            - (i.e. all tuples of length n with items in [1..v])
                            Ƈ - filter keep those for which:
                            ċ - count
                            ® - recall from register
                            - (i.e. keep only those containing v)
                            Ṅ€ - print €ach
                            ß - call this Link with the same arity
                            - (i.e. call Main(theFilteredList), again the argument is not actually used)





                            share|improve this answer











                            $endgroup$




                            Jelly, 10 (9?) bytes



                            9 if we may output using non-consistent separation (which I have enquired about) -- removal of the .



                            ‘ɼṗ³ċƇ®Ṅ€ß


                            Try it online!



                            How?



                            ‘ɼṗ³ċƇ®Ṅ€ß - Main Link: some argument, x (initially equal to n, but unused)
                            ɼ - recall v from the register (initially 0), then set register to, and yield, f(v)
                            ‘ - f = increment
                            - (i.e. v=v+1)
                            ³ - program's third command line argument (1st program argument) = n
                            ṗ - (implicit range of [1..v]) Cartesian power (n)
                            - (i.e. all tuples of length n with items in [1..v])
                            Ƈ - filter keep those for which:
                            ċ - count
                            ® - recall from register
                            - (i.e. keep only those containing v)
                            Ṅ€ - print €ach
                            ß - call this Link with the same arity
                            - (i.e. call Main(theFilteredList), again the argument is not actually used)






                            share|improve this answer














                            share|improve this answer



                            share|improve this answer








                            edited 2 hours ago

























                            answered 2 hours ago









                            Jonathan AllanJonathan Allan

                            54.4k537174




                            54.4k537174







                            • 1




                              $begingroup$
                              Based on "as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)" I assumed it wasn't allowed and the is required, but let's wait what OP has to say.
                              $endgroup$
                              – Kevin Cruijssen
                              2 hours ago












                            • 1




                              $begingroup$
                              Based on "as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)" I assumed it wasn't allowed and the is required, but let's wait what OP has to say.
                              $endgroup$
                              – Kevin Cruijssen
                              2 hours ago







                            1




                            1




                            $begingroup$
                            Based on "as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)" I assumed it wasn't allowed and the is required, but let's wait what OP has to say.
                            $endgroup$
                            – Kevin Cruijssen
                            2 hours ago




                            $begingroup$
                            Based on "as long as the separation between tuples and numbers inside each tuple is clear and consistent. (For example, one tuple per line.)" I assumed it wasn't allowed and the is required, but let's wait what OP has to say.
                            $endgroup$
                            – Kevin Cruijssen
                            2 hours ago











                            1












                            $begingroup$


                            05AB1E, 15 11 bytes



                            [¼¾LIãvy¾å—


                            -4 bytes by creating a port of @Maltysen's Pyth answer.



                            Try it online.



                            Explanation:





                            [ # Start an infinite loop:
                            ¼ # Increase the counter_variable by 1 (0 by default)
                            ¾L # Create a list in the range [1, counter_variable]
                            Iã # Take the cartesian power of this list with the input
                            v # Loop over each list `y` in this list of lists:
                            y¾å # If list `y` contains the counter_variable:
                            — # Print list `y` with trailing newline





                            share|improve this answer











                            $endgroup$








                            • 2




                              $begingroup$
                              When will the program get to [1,2,1]? Remember it has to be within finite time.
                              $endgroup$
                              – billpg
                              7 hours ago










                            • $begingroup$
                              @billpg Should be fixed now.
                              $endgroup$
                              – Kevin Cruijssen
                              5 hours ago















                            1












                            $begingroup$


                            05AB1E, 15 11 bytes



                            [¼¾LIãvy¾å—


                            -4 bytes by creating a port of @Maltysen's Pyth answer.



                            Try it online.



                            Explanation:





                            [ # Start an infinite loop:
                            ¼ # Increase the counter_variable by 1 (0 by default)
                            ¾L # Create a list in the range [1, counter_variable]
                            Iã # Take the cartesian power of this list with the input
                            v # Loop over each list `y` in this list of lists:
                            y¾å # If list `y` contains the counter_variable:
                            — # Print list `y` with trailing newline





                            share|improve this answer











                            $endgroup$








                            • 2




                              $begingroup$
                              When will the program get to [1,2,1]? Remember it has to be within finite time.
                              $endgroup$
                              – billpg
                              7 hours ago










                            • $begingroup$
                              @billpg Should be fixed now.
                              $endgroup$
                              – Kevin Cruijssen
                              5 hours ago













                            1












                            1








                            1





                            $begingroup$


                            05AB1E, 15 11 bytes



                            [¼¾LIãvy¾å—


                            -4 bytes by creating a port of @Maltysen's Pyth answer.



                            Try it online.



                            Explanation:





                            [ # Start an infinite loop:
                            ¼ # Increase the counter_variable by 1 (0 by default)
                            ¾L # Create a list in the range [1, counter_variable]
                            Iã # Take the cartesian power of this list with the input
                            v # Loop over each list `y` in this list of lists:
                            y¾å # If list `y` contains the counter_variable:
                            — # Print list `y` with trailing newline





                            share|improve this answer











                            $endgroup$




                            05AB1E, 15 11 bytes



                            [¼¾LIãvy¾å—


                            -4 bytes by creating a port of @Maltysen's Pyth answer.



                            Try it online.



                            Explanation:





                            [ # Start an infinite loop:
                            ¼ # Increase the counter_variable by 1 (0 by default)
                            ¾L # Create a list in the range [1, counter_variable]
                            Iã # Take the cartesian power of this list with the input
                            v # Loop over each list `y` in this list of lists:
                            y¾å # If list `y` contains the counter_variable:
                            — # Print list `y` with trailing newline






                            share|improve this answer














                            share|improve this answer



                            share|improve this answer








                            edited 1 hour ago

























                            answered 7 hours ago









                            Kevin CruijssenKevin Cruijssen

                            42.9k571217




                            42.9k571217







                            • 2




                              $begingroup$
                              When will the program get to [1,2,1]? Remember it has to be within finite time.
                              $endgroup$
                              – billpg
                              7 hours ago










                            • $begingroup$
                              @billpg Should be fixed now.
                              $endgroup$
                              – Kevin Cruijssen
                              5 hours ago












                            • 2




                              $begingroup$
                              When will the program get to [1,2,1]? Remember it has to be within finite time.
                              $endgroup$
                              – billpg
                              7 hours ago










                            • $begingroup$
                              @billpg Should be fixed now.
                              $endgroup$
                              – Kevin Cruijssen
                              5 hours ago







                            2




                            2




                            $begingroup$
                            When will the program get to [1,2,1]? Remember it has to be within finite time.
                            $endgroup$
                            – billpg
                            7 hours ago




                            $begingroup$
                            When will the program get to [1,2,1]? Remember it has to be within finite time.
                            $endgroup$
                            – billpg
                            7 hours ago












                            $begingroup$
                            @billpg Should be fixed now.
                            $endgroup$
                            – Kevin Cruijssen
                            5 hours ago




                            $begingroup$
                            @billpg Should be fixed now.
                            $endgroup$
                            – Kevin Cruijssen
                            5 hours ago











                            0












                            $begingroup$


                            VDM-SL, 51 bytes



                            g(i)==if i=0thenelse[x]^y


                            Recursive set comprehension with sequence concatenation..



                            Not on TIO, you could run in a program (if you turn on limits for nat type or it wont terminate):



                            functions 
                            g:nat->set of ?
                            g(i)==if i=0thenelse[x]^y


                            Includes the optional 0s in answer otherwise it would be 52 bytes binding on nat1






                            share|improve this answer









                            $endgroup$

















                              0












                              $begingroup$


                              VDM-SL, 51 bytes



                              g(i)==if i=0thenelse[x]^y


                              Recursive set comprehension with sequence concatenation..



                              Not on TIO, you could run in a program (if you turn on limits for nat type or it wont terminate):



                              functions 
                              g:nat->set of ?
                              g(i)==if i=0thenelse[x]^y


                              Includes the optional 0s in answer otherwise it would be 52 bytes binding on nat1






                              share|improve this answer









                              $endgroup$















                                0












                                0








                                0





                                $begingroup$


                                VDM-SL, 51 bytes



                                g(i)==if i=0thenelse[x]^y


                                Recursive set comprehension with sequence concatenation..



                                Not on TIO, you could run in a program (if you turn on limits for nat type or it wont terminate):



                                functions 
                                g:nat->set of ?
                                g(i)==if i=0thenelse[x]^y


                                Includes the optional 0s in answer otherwise it would be 52 bytes binding on nat1






                                share|improve this answer









                                $endgroup$




                                VDM-SL, 51 bytes



                                g(i)==if i=0thenelse[x]^y


                                Recursive set comprehension with sequence concatenation..



                                Not on TIO, you could run in a program (if you turn on limits for nat type or it wont terminate):



                                functions 
                                g:nat->set of ?
                                g(i)==if i=0thenelse[x]^y


                                Includes the optional 0s in answer otherwise it would be 52 bytes binding on nat1







                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered 5 hours ago









                                Expired DataExpired Data

                                948217




                                948217





















                                    0












                                    $begingroup$


                                    Wolfram Language (Mathematica), 131 bytes



                                    While[0<1,If[a~FreeQ~#,Print@#]&/@(b=Table[Select[Range@t~Tuples~s,Tr@#==k&],k,t,t(s=#)]~Flatten~1);a=a~Join~b;t++]&
                                    t=1
                                    a=


                                    Try it online!






                                    share|improve this answer











                                    $endgroup$

















                                      0












                                      $begingroup$


                                      Wolfram Language (Mathematica), 131 bytes



                                      While[0<1,If[a~FreeQ~#,Print@#]&/@(b=Table[Select[Range@t~Tuples~s,Tr@#==k&],k,t,t(s=#)]~Flatten~1);a=a~Join~b;t++]&
                                      t=1
                                      a=


                                      Try it online!






                                      share|improve this answer











                                      $endgroup$















                                        0












                                        0








                                        0





                                        $begingroup$


                                        Wolfram Language (Mathematica), 131 bytes



                                        While[0<1,If[a~FreeQ~#,Print@#]&/@(b=Table[Select[Range@t~Tuples~s,Tr@#==k&],k,t,t(s=#)]~Flatten~1);a=a~Join~b;t++]&
                                        t=1
                                        a=


                                        Try it online!






                                        share|improve this answer











                                        $endgroup$




                                        Wolfram Language (Mathematica), 131 bytes



                                        While[0<1,If[a~FreeQ~#,Print@#]&/@(b=Table[Select[Range@t~Tuples~s,Tr@#==k&],k,t,t(s=#)]~Flatten~1);a=a~Join~b;t++]&
                                        t=1
                                        a=


                                        Try it online!







                                        share|improve this answer














                                        share|improve this answer



                                        share|improve this answer








                                        edited 35 mins ago

























                                        answered 43 mins ago









                                        J42161217J42161217

                                        14k21353




                                        14k21353





















                                            0












                                            $begingroup$

                                            Python3 (56 characters)



                                            This runs, but never outputs/returns any values, because the permutations function keeps pulling numbers from count. But in theory, this would return the requested permutations.



                                            from itertools import*
                                            lambda n:permutations(count(1),n)


                                            Proof that this works for limited integer range:



                                            from itertools import*
                                            l = lambda n: permutations(range(1, 10), n)
                                            print(list(l(3))) # returns all permutations of (1, 2, 3, ..., 10) of length 3





                                            share|improve this answer









                                            $endgroup$












                                            • $begingroup$
                                              This is not a solution :-( The last element of the tuple will increase forever, so the other elements will never be reached. ("After infinity" does not count.) Also you never visit (1,1,1), etc., even in the demo case.
                                              $endgroup$
                                              – alexis
                                              17 mins ago















                                            0












                                            $begingroup$

                                            Python3 (56 characters)



                                            This runs, but never outputs/returns any values, because the permutations function keeps pulling numbers from count. But in theory, this would return the requested permutations.



                                            from itertools import*
                                            lambda n:permutations(count(1),n)


                                            Proof that this works for limited integer range:



                                            from itertools import*
                                            l = lambda n: permutations(range(1, 10), n)
                                            print(list(l(3))) # returns all permutations of (1, 2, 3, ..., 10) of length 3





                                            share|improve this answer









                                            $endgroup$












                                            • $begingroup$
                                              This is not a solution :-( The last element of the tuple will increase forever, so the other elements will never be reached. ("After infinity" does not count.) Also you never visit (1,1,1), etc., even in the demo case.
                                              $endgroup$
                                              – alexis
                                              17 mins ago













                                            0












                                            0








                                            0





                                            $begingroup$

                                            Python3 (56 characters)



                                            This runs, but never outputs/returns any values, because the permutations function keeps pulling numbers from count. But in theory, this would return the requested permutations.



                                            from itertools import*
                                            lambda n:permutations(count(1),n)


                                            Proof that this works for limited integer range:



                                            from itertools import*
                                            l = lambda n: permutations(range(1, 10), n)
                                            print(list(l(3))) # returns all permutations of (1, 2, 3, ..., 10) of length 3





                                            share|improve this answer









                                            $endgroup$



                                            Python3 (56 characters)



                                            This runs, but never outputs/returns any values, because the permutations function keeps pulling numbers from count. But in theory, this would return the requested permutations.



                                            from itertools import*
                                            lambda n:permutations(count(1),n)


                                            Proof that this works for limited integer range:



                                            from itertools import*
                                            l = lambda n: permutations(range(1, 10), n)
                                            print(list(l(3))) # returns all permutations of (1, 2, 3, ..., 10) of length 3






                                            share|improve this answer












                                            share|improve this answer



                                            share|improve this answer










                                            answered 33 mins ago









                                            agtoeveragtoever

                                            1,414425




                                            1,414425











                                            • $begingroup$
                                              This is not a solution :-( The last element of the tuple will increase forever, so the other elements will never be reached. ("After infinity" does not count.) Also you never visit (1,1,1), etc., even in the demo case.
                                              $endgroup$
                                              – alexis
                                              17 mins ago
















                                            • $begingroup$
                                              This is not a solution :-( The last element of the tuple will increase forever, so the other elements will never be reached. ("After infinity" does not count.) Also you never visit (1,1,1), etc., even in the demo case.
                                              $endgroup$
                                              – alexis
                                              17 mins ago















                                            $begingroup$
                                            This is not a solution :-( The last element of the tuple will increase forever, so the other elements will never be reached. ("After infinity" does not count.) Also you never visit (1,1,1), etc., even in the demo case.
                                            $endgroup$
                                            – alexis
                                            17 mins ago




                                            $begingroup$
                                            This is not a solution :-( The last element of the tuple will increase forever, so the other elements will never be reached. ("After infinity" does not count.) Also you never visit (1,1,1), etc., even in the demo case.
                                            $endgroup$
                                            – alexis
                                            17 mins ago











                                            0












                                            $begingroup$


                                            MATL, 16 bytes



                                            `@:GZ^t!Xs@=Y)DT


                                            Tuples are ordered by increasing sum, and within a given sum they are ordered lexicographically.



                                            Try it online!






                                            share|improve this answer











                                            $endgroup$












                                            • $begingroup$
                                              You are supposed to take input
                                              $endgroup$
                                              – H.PWiz
                                              4 hours ago










                                            • $begingroup$
                                              @H.PWiz Thanks. I got it wrong
                                              $endgroup$
                                              – Luis Mendo
                                              4 hours ago










                                            • $begingroup$
                                              @H.PWiz Solved now
                                              $endgroup$
                                              – Luis Mendo
                                              30 mins ago















                                            0












                                            $begingroup$


                                            MATL, 16 bytes



                                            `@:GZ^t!Xs@=Y)DT


                                            Tuples are ordered by increasing sum, and within a given sum they are ordered lexicographically.



                                            Try it online!






                                            share|improve this answer











                                            $endgroup$












                                            • $begingroup$
                                              You are supposed to take input
                                              $endgroup$
                                              – H.PWiz
                                              4 hours ago










                                            • $begingroup$
                                              @H.PWiz Thanks. I got it wrong
                                              $endgroup$
                                              – Luis Mendo
                                              4 hours ago










                                            • $begingroup$
                                              @H.PWiz Solved now
                                              $endgroup$
                                              – Luis Mendo
                                              30 mins ago













                                            0












                                            0








                                            0





                                            $begingroup$


                                            MATL, 16 bytes



                                            `@:GZ^t!Xs@=Y)DT


                                            Tuples are ordered by increasing sum, and within a given sum they are ordered lexicographically.



                                            Try it online!






                                            share|improve this answer











                                            $endgroup$




                                            MATL, 16 bytes



                                            `@:GZ^t!Xs@=Y)DT


                                            Tuples are ordered by increasing sum, and within a given sum they are ordered lexicographically.



                                            Try it online!







                                            share|improve this answer














                                            share|improve this answer



                                            share|improve this answer








                                            edited 32 mins ago

























                                            answered 4 hours ago









                                            Luis MendoLuis Mendo

                                            75.3k889292




                                            75.3k889292











                                            • $begingroup$
                                              You are supposed to take input
                                              $endgroup$
                                              – H.PWiz
                                              4 hours ago










                                            • $begingroup$
                                              @H.PWiz Thanks. I got it wrong
                                              $endgroup$
                                              – Luis Mendo
                                              4 hours ago










                                            • $begingroup$
                                              @H.PWiz Solved now
                                              $endgroup$
                                              – Luis Mendo
                                              30 mins ago
















                                            • $begingroup$
                                              You are supposed to take input
                                              $endgroup$
                                              – H.PWiz
                                              4 hours ago










                                            • $begingroup$
                                              @H.PWiz Thanks. I got it wrong
                                              $endgroup$
                                              – Luis Mendo
                                              4 hours ago










                                            • $begingroup$
                                              @H.PWiz Solved now
                                              $endgroup$
                                              – Luis Mendo
                                              30 mins ago















                                            $begingroup$
                                            You are supposed to take input
                                            $endgroup$
                                            – H.PWiz
                                            4 hours ago




                                            $begingroup$
                                            You are supposed to take input
                                            $endgroup$
                                            – H.PWiz
                                            4 hours ago












                                            $begingroup$
                                            @H.PWiz Thanks. I got it wrong
                                            $endgroup$
                                            – Luis Mendo
                                            4 hours ago




                                            $begingroup$
                                            @H.PWiz Thanks. I got it wrong
                                            $endgroup$
                                            – Luis Mendo
                                            4 hours ago












                                            $begingroup$
                                            @H.PWiz Solved now
                                            $endgroup$
                                            – Luis Mendo
                                            30 mins ago




                                            $begingroup$
                                            @H.PWiz Solved now
                                            $endgroup$
                                            – Luis Mendo
                                            30 mins ago











                                            0












                                            $begingroup$


                                            Python 2, 126 119 bytes





                                            n=input()
                                            m=i=0;p=2**~-n
                                            while 1:
                                            b=map(len,bin(i+p)[3:].split('0'));i+=1
                                            if len(b)==n:print b
                                            if i==p:i=0;m+=1;p*=2


                                            Try it online!



                                            Construct the ordered partitions of m into n bins, for m = 0,1,2,3,... by selecting for binary numbers with n 0s and m 1s.






                                            share|improve this answer











                                            $endgroup$

















                                              0












                                              $begingroup$


                                              Python 2, 126 119 bytes





                                              n=input()
                                              m=i=0;p=2**~-n
                                              while 1:
                                              b=map(len,bin(i+p)[3:].split('0'));i+=1
                                              if len(b)==n:print b
                                              if i==p:i=0;m+=1;p*=2


                                              Try it online!



                                              Construct the ordered partitions of m into n bins, for m = 0,1,2,3,... by selecting for binary numbers with n 0s and m 1s.






                                              share|improve this answer











                                              $endgroup$















                                                0












                                                0








                                                0





                                                $begingroup$


                                                Python 2, 126 119 bytes





                                                n=input()
                                                m=i=0;p=2**~-n
                                                while 1:
                                                b=map(len,bin(i+p)[3:].split('0'));i+=1
                                                if len(b)==n:print b
                                                if i==p:i=0;m+=1;p*=2


                                                Try it online!



                                                Construct the ordered partitions of m into n bins, for m = 0,1,2,3,... by selecting for binary numbers with n 0s and m 1s.






                                                share|improve this answer











                                                $endgroup$




                                                Python 2, 126 119 bytes





                                                n=input()
                                                m=i=0;p=2**~-n
                                                while 1:
                                                b=map(len,bin(i+p)[3:].split('0'));i+=1
                                                if len(b)==n:print b
                                                if i==p:i=0;m+=1;p*=2


                                                Try it online!



                                                Construct the ordered partitions of m into n bins, for m = 0,1,2,3,... by selecting for binary numbers with n 0s and m 1s.







                                                share|improve this answer














                                                share|improve this answer



                                                share|improve this answer








                                                edited 2 mins ago

























                                                answered 58 mins ago









                                                Chas BrownChas Brown

                                                5,2291523




                                                5,2291523



























                                                    draft saved

                                                    draft discarded
















































                                                    If this is an answer to a challenge…



                                                    • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                                    • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                                      Explanations of your answer make it more interesting to read and are very much encouraged.


                                                    • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.


                                                    More generally…



                                                    • …Please make sure to answer the question and provide sufficient detail.


                                                    • …Avoid asking for help, clarification or responding to other answers (use comments instead).




                                                    draft saved


                                                    draft discarded














                                                    StackExchange.ready(
                                                    function ()
                                                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f183225%2flist-all-the-tuples%23new-answer', 'question_page');

                                                    );

                                                    Post as a guest















                                                    Required, but never shown





















































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown

































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown







                                                    Popular posts from this blog

                                                    How to create a command for the “strange m” symbol in latex? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)How do you make your own symbol when Detexify fails?Writing bold small caps with mathpazo packageplus-minus symbol with parenthesis around the minus signGreek character in Beamer document titleHow to create dashed right arrow over symbol?Currency symbol: Turkish LiraDouble prec as a single symbol?Plus Sign Too Big; How to Call adfbullet?Is there a TeX macro for three-legged pi?How do I get my integral-like symbol to align like the integral?How to selectively substitute a letter with another symbol representing the same letterHow do I generate a less than symbol and vertical bar that are the same height?

                                                    Category:Tremithousa Media in category "Tremithousa"Navigation menuUpload media34° 49′ 02.7″ N, 32° 26′ 37.32″ EOpenStreetMapGoogle EarthProximityramaReasonatorScholiaStatisticsWikiShootMe

                                                    Dokschytsy (Steed) Kwelen | NawigatsjuunBelarus: Vitebsk Region, citypopulation.de