We generalize the school choice problem by defining a notion of allowable priority violations. In this setting, a weak axiom of stability (partial stability) allows only certain priority violations. We introduce a class of algorithms called the Student Exchange under Partial Fairness (SEPF). Each member of this class gives a partially stable matching that is not Pareto dominated by another partially stable matching (i.e. constrained efficient in the class of partially stable matchings). Moreover, any constrained efficient matching that Pareto improves upon a partially stable matching can be obtained via an algorithm within the SEPF class. We characterize the unique algorithm in the SEPF class satisfying a desirable incentive property. The extension of the model to an environment with weak priorities enables us to provide a characterization result which proves the counterpart of the main result in Erdil and Ergin (2008).