title: Recursively generate combinations with Python
body: <p>I  am trying to provide a recursive method that provides a list of all the possible combinations when given a list of courses. E.g course = [Entree, Dessert]
  This is what I have so far: </p>
  
  <pre><code>Entree = ["pumkinsoup","antipasto"]
  Dessert = ["cheesecake", "icecream", "tiramisu", "cheeseplatter"]
  courses = [Entree, Dessert]
  
  def make_orders(courses):
      dishes_so_far = []
      recursive_make_orders(dishes_so_far, courses)
  
  def recursive_make_orders(dishes_so_far, courses):
      n = len(courses)
      if n==0 :
          print(dishes_so_far)
      else:
          current_courses = courses[0]
  
          for D in current_courses:
              dishes_so_far.append(D)
              recursive_make_orders(dishes_so_far , courses[1:len(courses)])
  </code></pre>
  
  <p>\I am trying to make it so that it prints out the combination like <code>[[pumkinsoup,cheesecake],[punkinsoup, icecream]]</code> and etc but its actually giving me <code>[pumkinsoup, cheesecake, icecream]</code> and so on.</p>
  
  <p>Tried adding it with addition instead of append and it gave me an error.</p>
  
  <p>This is homework, so a recursive method is required.</p>