Cain's wife was his sister of whom we're only told that Adam had sons and daughters. Their DNA was still perfect enough that their children had no effects of inbreeding. That this is so can be seen in the shortening of peoples ages after the flood. Then, shortly after their new ages stabilized, some 7 generations after the flood; incest would have started having distasteful results. They couldn't have begun mixing between the descendants of Noah's three sons, until after the confounding of languages at the tower of babel or we wouldn't still have the three distinct races that we do today.
I suspect that the sons of God that took daughters of men for wives; are children born to Adam and Eve before the fall and as such did not have a fallen physical nature in their DNA, though they were still mortal. Angels do not marry and demons have no bodies. This allows for no one to be physically on the planet who wasn't a descendent of both Adam and Eve. They probably were not kicked out of the garden of Eden, though the flaming sword that guarded the way to the tree of life would have kept them away too. Knowing how people are, I would be surprised if they, the sons of God, weren't hunted down after a few generations or so. The genealogies tell us that Adam was the son of God. No other beings are called son(s), other than Jesus, the only begotten of the Father and the first born of many brethren. We are, after all, the ones who were made in the Lord's image and after his likeness.