I'm not sure there's a simple formula for this one. I've seen in past experiences the most successful co-founder situations result from networking within a small community. If you can meet someone through a friend, your chances of success increase dramatically. If that's not possible, another option is attending MeetUps for specific interests (like software development or specific coding languages). The final suggestion I have although probably most difficult is joining startup weekends, getting on a team with some technical talent, and seeing how well you mesh together throughout a long working weekend.