For G the fundamental group of a closed surface, we produce an algorithm which decides whether there is an element of the automorphism group of G which takes one specified finite set of elements to another. The algorithm finds such an automorphism if it exists. The methods are geometric and also apply to surfaces with boundary.