title: Calling the same function twice in a single return statement in Python
body: <p>While going through some python codes, I found a program as follows</p>
  <pre><code>class py_solution:
      def sub_sets(self, sset):
          return self.subsetsRecur([], sorted(sset))
  
      def subsetsRecur(self, current, sset):
          if sset:
              **return self.subsetsRecur(current, sset[1:]) + self.subsetsRecur(current + [sset[0]], sset[1:])**
          return [current]
  
  
  print(py_solution().sub_sets([4, 5, 6]))
  </code></pre>
  <p>How does the function call work for this function being called twice in the same return statement(highlighted in bold) and what will be the output of the given query?</p>
  <p>It would be helpful if a detailed explanation is given.</p>