Very simple Python Solution. Using recursion methods. Not sure if anyone has posted.

```
class Solution(object):
def subsets(self, S):
"""
:type S: List[int]
:rtype: List[List[int]]
"""
if len(S)==0:return [[]]
R = self.subsets(S[1:])
R1= [[S[0]]+R[i] for i in range(len(R))]
return R+R1
```