class MoreMath::Permutation

def self.for(collection, rank = 0)

instance will default to rank 0 if none is given.
collection should respond to size, [], and []=. The Permutation
collection as the default Permutation#project data object. A
A permutation instance of size collection.size is created with
def self.for(collection, rank = 0)
  perm = new(collection.size, rank)
  perm.instance_variable_set(:@collection, collection)
  perm
end