NAME

String::Combination - An algorithm to calculate all the strings resulting from an ordered combination of k characters from n characters available.

SYNOPSIS

use String::OrderedCombination qw(ocombination);

my @array=ocombination("foo",2);

print "$_ " foreach (@array);

#prints of fo of fo oo oo 


my @array=ocombination("bar",3);

print "$_ " foreach (@array);

#prints abr arb rab rba bra bar 

DESCRIPTION

From a set of n elements, given an integer k, the algorithm calculates k! * n!/(k!(n-k)!) elements that are all the ordered combinations of k elements from the set of n elements. I.e. the permutation x combination cross product for any given k < n.

The combination function needs a string (every character is an element of the set of n=length(string) elements) and an integer value that is k.

The function returns a list of values.

If the function returns an empty list, an error has occured and you can retrive its description from $String::OrderedCombination::err .

Thanks

Thanks to Allen Day <allenday atsign ucla dotsign edu> to point me about the ordered type of combination this module performs.

AUTHORS

The C algorithm and code is by Andrea Gasparri, the XS glue is by Dree Mistrut with a help from dada <dada atsign perl dotsign it>.

Copyright 2004,2005 Andrea Gasparri <andrea atsign slack dotsign z00 dotsign it> and Dree Mistrut <dree atsign friul dotsign it>.

This package is free software and is provided "as is" without express or implied warranty. You can redistribute it and/or modify it under the same terms as Perl itself.