title: Expand a Set[Set[String]] into Cartesian Product in Scala
body: <p>I have the following set of sets. I don't know ahead of time how long it will be.</p>
  
  <pre><code>val sets = Set(Set("a","b","c"), Set("1","2"), Set("S","T"))
  </code></pre>
  
  <p>I would like to expand it into a cartesian product:</p>
  
  <pre><code>Set("a&amp;1&amp;S", "a&amp;1&amp;T", "a&amp;2&amp;S", ..., "c&amp;2&amp;T")
  </code></pre>
  
  <p>How would you do that? </p>