если слово не длиннее 32 символов можно так:
Код:
var
s, r: String[32];
i, j: DWORD;
begin
s:=Edit1.Text;
for i:=0 to (1 shl Length(s)-1) do
begin
r:='';
for j:=0 to Length(s)-1 do
if ((i shr j) and 1)=1 then r:=r+AnsiUpperCase(s[j+1])
else r:=r+AnsiLowerCase(s[j+1]);
Memo1.Lines.Add(r);
end;
end;