program Potenzmenge;

{ Berechnet die Potenzmenge einer Menge, die als String
 spezifiziert wird (einzelne Zeichen als Elemente).
 Copyright (c) 8/99 by Sebastian Koppehel. }

var
   w : String;

function Rest(s	: String) : String;
begin
   Rest := Copy(s,2,Length(s)-1);
end;

procedure Pot(p, s : String);
begin
   if Length(s) = 0 then
      Writeln(p)
   else
   begin
      Pot(p,Rest(s));
      Pot(p+s[1],Rest(s));
   end;
end;

begin
   if ParamCount = 0 then
   begin
      Write('Wort: ');
      Readln(w);
   end
   else w := ParamStr(1);
   Pot('',w);
end.
