def _af_new(perm):
        """A method to produce a Permutation object from a list;
        the list is bound to the _array_form attribute, so it must
        not be modified; this method is meant for internal use only;
        the list ``a`` is supposed to be generated as a temporary value
        in a method, so p = Perm._af_new(a) is the only object
        to hold a reference to ``a``::

        Examples
        ========

        >>> Permutation.print_cyclic = False
        >>> a = [2, 1, 3, 0]
        >>> p = Permutation._af_new(a)
        >>> p
        Permutation([2, 1, 3, 0])

        """
        p = Basic.__new__(Perm, Tuple(perm))
        p._array_form = perm
        p._size = len(perm)
        return p