I find sets to be very mysterious candidates for abstract entities. I think it's their extensionality that seems strange to me. And anyway, if one can reduce entities to entities that we anyway want to have in our ontology, ceteris paribus we should. I want to describe a three-step procedure—with some choices at each step—for generating sets. I will use plural quantification quite a lot in this. I am assuming that one can make sense of plural quantification apart from sets.
Step 1: The non-empty candidates. The non-empty candidates, some of which will end up counting as sets in the next step, will be entities that stand in "packaging" relation to a plurality of objects, such that for any plurality, or at least for enough pluralities, there is a candidate that packages that plurality. There are many options for the non-empty candidates and the packaging relation.
Option A: Plural existential propositions, of the form <The Xs exist>, where a plural existential proposition p packages a plurality, the Xs, provided that it attributes existence to the Xs and only to the Xs.
Option B: Plural existential states of affairs (either Armstrong or Plantinga style), i.e., states of affairs of the Xs existing, where a plural existential state of affairs e packages a plurality, the Xs, provided that it is a state of affairs of the Xs existing. I got this option from Rob Koons.
Option C: This family of options generates the candidates in two sub-steps. The first is to have candidates that stand in a packaging relation to individuals, such that each candidates packages precisely one individual. Call these "singleton candidates". For brevity if x is a singleton candidate that packages y, I will say x is a singleton of y. The second step is to take our non-empty candidates to be mereological sums of singleton candidates, and to say that a mereological sum m packages the Xs if and only if m is a mereological sum of Ys such that each of the Ys is a singleton of one of the Xs and each of the Xs is packaged by exactly one of the Ys. We need the singleton packaging relation to satisfy the condition (*) that a mereological sum of singletons of the Xs has no singletons as parts other than the singletons of the Xs. (In particular, no singleton of y can be a part of any singleton of x if x and y are distinct.)
We get different instances of Option C by considering different singleton candidates. For instance, we could have the singleton candidates be individual essences, and a singleton candidate then packages precisely the entity that it is an individual essence of. I got this from Josh Rasmussen. Or we might use variants of Options A and B here: maybe a proposition attributing existence to x or a state of affairs of x existing will be our candidate singleton. (Whether the state of affairs option here differs from Option B depends on whether the state of affairs of a plurality existing is something different from the mereological sum of the states of affairs of the individuals in the plurality existing.)
There are many other ways of packaging pluralities.
Step 2: The empty candidate. We also need an empty candidate, which will be some entity that differs from the non-empty candidates of Step 1. Ideally, this will be an entity of the same sort as the non-empty candidates. For instance, if our non-empty candidates are propositions, we will want our empty candidate to be a proposition, say some contradictory proposition.
Step 3: Pruning the candidates. The basic idea will be that x is a member of a candidate y if and only if y is one of the non-empty candidates and y packages a plurality that has x in it. But the above is apt to give us too many candidates for them all to be sets. There are at least two reasons for this. First, on some of the options, there won't be a unique candidate packaging any given plurality. For instance, there might be more than one proposition attributing existence to the same plurality. Thus, the propositions <The Stagirite and Tully exist> and <Aristotle and Cicero exist> will be different propositions if Millianism is false, but both attribute existence to the same plurality. Second, some of the candidates will be better suited as candidates for proper classes than for sets and some candidates may be unsuitable either as sets or as proper classes. For instance, there might be a proposition that says that the plural existential propositions exist. Such a proposition packages all the candidates, including itself, and will not be a good set or proper class on many axiomatizations.