func subsets(nums []int) [][]int { var ans [][]int n := len(nums) for mask := 0; mask < 1<<n; mask++ { t := []int{} for i, v := range nums { if ((mask >> i) & 1) == 1 { t = append(t, v) } } ans = append(ans, t) } return ans }