Who did Cain take for a wife?

Who did Cain marry?
The answer to this question is similar to answering the question "Who was Cain afraid of when God banished him and put a mark of protection on him?" 
(13)  Cain said to the LORD, "My punishment is greater than I can bear. (14)  Behold, you have driven me today away from the ground, and from your face I shall be hidden. I shall be a fugitive and a wanderer on the earth, and whoever finds me will kill me." (15)  Then the LORD said to him, "Not so! If anyone kills Cain, vengeance shall be taken on him sevenfold." And the LORD put a mark on Cain, lest any who found him should attack him. (16)  Then Cain went away from the presence of the LORD and settled in the land of Nod, east of Eden. (17)  Cain knew his wife, and she conceived and bore Enoch. When he built a city, he called the name of the city after the name of his son, Enoch.
If we assume that the Bible records everything that happened in the beginning and everyone who lived then there were no other people for Cain to fear and there was no one for him to marry.

But He did marry and he was afraid of people and God did give him a mark to protect him. 

So, the Bible does not record everything that happened and every person that existed in the beginning. It does not intend to. It records those things, people, and stories that suit God's purposes.

Either Cain married his sister or Abel married his sister and Cain married their daughter or some scenario like that. Or Cain married someone from other families created around the same time.

I am most comfortable with the idea that Cain married a sister or near relative. While this is immoral, repugnant, or taboo to us today, and has been for thousands of years, early on this was happening and the people of God had to be told not to do it. There may not have been as many birth defects in those times as there have been more recently regarding children born of near relatives.
Randy Elliott