#!/usr/bin/perl use strict; use warnings 'all'; my %buckets; my @set = "A" .. "D"; foreach my $run (1 .. 10_000) { my @values = @set; @values[$_,$a] = @values[$a=rand($_-1),$_] for (reverse 1..$#values); $buckets {"@values"} ++; } foreach my $key (sort keys %buckets) { printf "%4d: %s\n" => $buckets {$key}, $key; } printf "%d buckets\n" => scalar keys %buckets; __END__ 4955: B C D A 5045: D C A B 2 buckets