DSAverse
Recursion
Loading Recursion Visualizer...
Recursion Tree
depth: 1f(n) = f(n-1) + f(n-2)
Initializing Sorting Algorithms...
Sorting
Trees
Graphs
Preparing interactive visualizations...
Recursion
Loading Recursion Visualizer...
Recursion Tree
depth: 1f(n) = f(n-1) + f(n-2)
At each element, make a binary choice — include or exclude. Watch the decision tree grow as all 2ⁿ subsets emerge.
Click Play to begin subset generation.
def subsets(nums):
result = []
def backtrack(index, current):
if index == len(nums):
result.append(current[:]) # record subset
return
# Exclude nums[index]
backtrack(index + 1, current)
# Include nums[index]
current.append(nums[index])
backtrack(index + 1, current)
current.pop() # backtrack
backtrack(0, [])
return result
# [1, 2, 3] → 8 subsetsO(n · 2ⁿ)O(n · 2ⁿ)2^3 = 8How many subsets does a set of n elements have?