I am looking for an algorithm that is implemented in C, C++, Python or Java that calculates the set of winning coalitions for n agents where each agent has a different amount of votes. I would appreciate any hints. Thanks!
In other words, you have an array X[1..n], and want to have all the subsets of it for which sum(subset) >= 1/2 * sum(X), right?
That probably means the whole set qualifies. 
After that, you can drop any element k having X[k] < 1/2 * sum(X), and every such a coalition will be fine as an answer, too.
After that, you can proceed dropping elements one by one, stopping when you've reached half of the sum. 
This is obviously not the most effective solution: you don't want to drop k1=1,k2=2 if you've already tried k1=2,k2=1—but I believe you can handle this.
Coalition Search Algorithm