我正在尋找一個優雅(快速)的python函數,它可以產生以下兩個數組中的每個組合。一套球員牌/牌手的所有可能的組合
cards = ["8H", "8S", "8C", "8D", "9H", "9S", "9C", "9D", "10H", "10S", "10C", "10D", "AH", "AS", "AC", "AD"]
players = ["_1", "_1", "_1", "_2", "_2", "_2", "_3", "_3", "_3", "_4", "_4", "_4", "_To", "_To", "_To", "_Tc"]
結合會是什麼樣子:
[('8H', '_1'), ('8S', '_1'), ('8C', '_1'), ('8D', '_2'), ('9H', '_2'), ('9S', '_2'), ('9C', '_3'), ('9D', '_3'), ('10H', '_3'), ('10S', '_4'), ('10C', '_4'), ('10D', '_4'), ('AH', '_To'), ('AS', '_To'), ('AC', '_To'), ('AD', '_Tc')]
但是!沒有平等,我的意思是這樣。 例子:
如果卡是:
["a", "b", "c", "d"]
如果玩家是:
["1", "1", "2", "2"]
結果:
[1a, 1b, 2c, 2d]
[1a, 1c, 2b, 2d]
[1a, 1d, 2b, 2c]
[1b, 1c, 2a, 2d]
[1b, 1d, 2a, 2c]
[1c, 1d, 2a, 2b]
不例如:
[1a, 1b, 2d, 2c]
播放器2具有(c和d)等於(d和c)
我已經嘗試的itertools
一個功能,如combinations
和permutations
但沒有運氣。由於狀態空間爆炸,所有組合都不是真正的選項之後拒絕等於。
我希望有人有一個解決方案,因爲谷歌搜索這個具體問題失敗。
我已經使標題和標籤更適合這個問題和相關的問題;以前的標題並不是人們將要搜索的關於這個特定(撲克相關)問題的東西。而「空間」和「國家」標籤在不注意其含義的情況下被挑選出來。 –