Python to C# Code Explanation
<p>My ultimate aim is to convert the below code in python to C#, but I'd like to do it my self by learning the python syntax. I understand that the code is recursive.</p>

<p>The code produces polynomials of degree n with k variables.  More specifically the list of exponents for each variable.</p>

<pre><code>def multichoose(n,k):
    if k &lt; 0 or n &lt; 0: return "Error"
    if not k: return [[0]*n]
    if not n: return []
    if n == 1: return [[k]]
    return [[0]+val for val in multichoose(n-1,k)] + \
        [[val[0]+1]+val[1:] for val in multichoose(n,k-1)]
</code></pre>

<p>Here is the conversion I have so far:</p>

<pre><code>public double[] MultiChoose(int n, int k)
{
    if (k &lt; 0 || n &lt; 0)
    {
         throw new Exception();
    }

   if (k == 0)
   {
       return [[0]*n]; // I have no idea what the [[0]*n] syntax means
   }

   if (n == 0)
   {
       return new double[0]; // I think this is just an empty array
   }

   if (n == 1)
   {
       return new double[1] {k}; // I think this is just an empty array
   }

   //Part I don't understand
   return [[0]+val for val in MultiChoose(n-1,k)] + \
        [[val[0]+1]+val[1:] for val in MultiChoose(n,k-1)]
} 
</code></pre>

<p>My question is: How do I convert the python code?</p>
