title: Creating a stream of multiple tuples out of one tuple pair
body: <p>Let's say I have a tuple (1, 2). I want to create a stream, that gives me all possible combinations of that tuples' values.
  So I want to create a stream that looks like this:</p>
  <p>[(1, 1), (1, 2), (2, 1), (2, 2)]</p>
  <p>This is my class for my tupels:</p>
  <pre><code>public class Tupel&lt;T&gt; {
  
      private final T first;
      private final T second;
  
      public Tupel(T first, T second) {
          assert first != null;
          assert second != null;
  
          this.first = first;
          this.second = second;
      }
  
      public T getFirst() {
          return first;
      }
  
      public T getSecond() {
          return second;
      }
  
      @Override
  
  ...
  
  </code></pre>
  <p>This is my class for my tuple pairs:</p>
  <pre><code>public class TupelPairs&lt;T&gt; {
      private TupleSet&lt;T&gt; tupleSet;
  
      public TupelPais(TupleSet&lt;T&gt; tupleSet) {
      this.tupelSet = tupleSet;
      //This is where I want to create my tuple pairs
      }
  
     
      public Stream&lt;Tupel&lt;T&gt;&gt; getElements() {
      return; //This is where I want to return my Stream of those tupel pairs
  }
  </code></pre>
  <p>How could do I create those tuple pairs?</p>