We introduce the k-pattern set mining problem, which is concerned with finding sets of k patterns that satisfy constraints. We formulate a number of such constraints, both at the local level, that is, on individual patterns, and more importantly, also on the global level, that is, on the overall pattern set. The resulting framework is flexible and generic in the sense that it can be instantiated to a wide variety of well-known mining tasks including concept-learning, rule-learning, redescription mining, conceptual clustering and tiling. We present a solution method based on constraint programming and discuss how many problems can been modelled in a constraint programming system. Finally, a number of experiments show the promise and generality of the approach.