01ყოველი ქვესიმრავლე გადაწყვეტილებების გზაა
{1, 2, 3}-ის ქვესიმრავლის ასაგებად ყოველ ელემენტზე ერთი გადაწყვეტილება მივიღოთ: ავიღოთ თუ არ ავიღოთ. სამი „კი/არა“ გადაწყვეტილება იძლევა 2 · 2 · 2 = 8 ქვესიმრავლეს. დავხატოთ ისინი ორობით ხედ: ყოველი დონე ერთ ელემენტზე წყვეტს, ყოველი გზა სათავიდან ფოთლამდე ერთი ქვესიმრავლეა.
რეკურსია ამ ხეს პირდაპირ შემოივლის:
search(k): თუk == n, დავბეჭდოთ მიმდინარე ქვესიმრავლე;- წინააღმდეგ შემთხვევაში გამოვიძახოთ
search(k+1)a[k]-ის გარეშე; - შემდეგ
push_back(a[k]), გამოვიძახოთsearch(k+1)დაpop_back().
pop_back() აუცილებელია: ის აუქმებს არჩევანს, რომ გამომძახებელმა ქვესიმრავლე ზუსტად ისეთი დაიბრუნოს, როგორიც იყო. ყოველი ფოთოლი ერთხელ ინახულება, ამიტომ ყოველი ქვესიმრავლე ზუსტად ერთხელ იბეჭდება.