Um alle derartig geformenten Permutionen zu bekommen, ist die notwendige Zahl der Aufrufe Length(Numbers) * Length(Numbers). Das ist auch recht einfach ersichtlich, schließlich werden Length(Numbers) Bits in der Maske belegt, die von (alle Bits 0) bis (alle Bits 1) läuft.
Zitat von
Sergej:
Also solch eine Aufgabe löst man im Allgemeinen mittels Backtracking.
Das geht natürlich auch, aber bei dieser Methode ist es einfacher, zwischendurch abzubrechen, und die Funktionsweise ist (fast) sofort ersichtlich.