int S[N] void allSubsets(int pos, int len, int[] subset) { if(pos == N) { print(subset) return } // Try the current element in the subset. subset[len] = S[pos] allSubsets(pos+1, len+1, subset) // Skip the current element. allSubsets(pos+1, len, subset) }