Delphi-Quellcode:
procedure PermuteCase(const s: string; list: TString; startIndex: Integer := 0);
var temp: string;
begin
if startIndex > length(s) then exit;
if startIndex = 0 then
begin
temp := lowercase(s);
startIndex := 1;
end
else
temp := s;
list.Add(temp);
PermuteCase(temp, list, startIndex + 1);
temp[startIndex] := upper(temp[startIndex]);
list.Add(temp);
PermuteCase(temp, list, startIndex + 1);
end;
Womöglich stimmen nicht alle Aufrufe, aber das Prinzip müsste so richtig umgesetzt sein