#!/usr/bin/perl -w $string="CMCDXCXLIXIVI"; @letters=split //,$string; foreach $i (1 .. 2 ** scalar @letters) { %used=();$number="";$k=$i; foreach ($j=0; $j<=$#letters;$j++,$k >>= 1) { $letter=$letters[$j]; if ($k % 2 and !$used{$letter}) { $used{$letter}=1; $number.=$letter; } } if (!$seen{$number}){ $seen{$number}=1; print "$number\n"; } }