program ideone;

{$MODE OBJFPC}

type
  TCharset = set of AnsiChar;

  procedure Anagram(const ACharset: TCharset; const AValue: String = '');
  var
    LChar: AnsiChar;
  begin
    if ACharset = [] then
      WriteLn(AValue)
    else
      for LChar in ACharset do
        Anagram(ACharset - [LChar], AValue + LChar);
  end;

  procedure PrintAnagrams(const AValue: String);
  var
    LCharset: TCharset = [];
    LChar: AnsiChar;
  begin
    for LChar in AValue do
      LCharset += [LChar];
      
    Anagram(LCharset);
  end;
  
begin
  PrintAnagrams('kura');
end.