my @val = (1, 2, 3);

# from jemorris [eichin:19981222T0227-05]
my @perm = (':');
for (@val) {
  @perm = map {
    my $cur = $_;
    map { $cur =~ /:$_:/ ? () : "$cur$_:" } @val } @perm;
}
#
print join("\n", @perm);
