title: 1326 starting hold'em combos

text:
# Question
Title: 1326 starting hold'em combos
The goal is to get all combinations of hold'em starting hands (every two card combination) in the shortest amount of code.

A hold'em hand is two distinct cards dealt from a standard deck of **52** cards, with deal-order being irrelevant, as such there are `52*51/2 = 1326`, hands.

There is also a commonly used notation for the cards and hands:

A standard deck consists of **52** cards; each card has a rank and a suit. There are **4** suits which we shall label `cdhs`, these are not ordered. There are **13** ranks, these are ordered - from the highest rank, `A`, to lowest rank, `2` \- which we shall label `AKQJT98765432`.

The full deck of **52** cards may be represented as:

```
Ac Ad Ah As Kc Kd Kh Ks Qc Qd Qh Qs Jc Jd Jh Js Tc Td Th Ts 9c 9d 9h 9s 8c 8d 8h 8s 7c 7d 7h 7s 6c 6d 6h 6s 5c 5d 5h 5s 4c 4d 4h 4s 3c 3d 3h 3s 2c 2d 2h 2s

```

A hold'em hand consists of two of these cards, and the hand may be represented as the two representations from the above list adjoined (e.g. `JdJc` or `JsTs`)

Given no input the output should be all such "combinations" (with any clear delimitation) - that is all `52*51/2 = 1326` (not "all" `52*51 = 2652`):

* For every (rank-wise) "pair" such as `7d7h` there is an equivalent representation (here `7h7d`) only **one of** these two should appear (it may be either).
* For every other combination such as `Qc8s` there is an equivalent reprentation (here `8sQc`) only the **former** should appear (the one with the left card being the higher ranked one)

Example valid outputs:

```
['AcAs', 'AhAs', 'AdAs', 'AhAc', 'AdAc', 'AdAh', 'AsKs', 'AcKs', 'AhKs', 'AdKs', 'KcKs', 'KhKs', 'KdKs', 'AsKc', 'AcKc', 'AhKc', 'AdKc', 'KhKc', 'KdKc', 'AsKh', 'AcKh', 'AhKh', 'AdKh', 'KdKh', 'AsKd', 'AcKd', 'AhKd', 'AdKd', 'AsQs', 'AcQs', 'AhQs', 'AdQs', 'KsQs', 'KcQs', 'KhQs', 'KdQs', 'QcQs', 'QhQs', 'QdQs', 'AsQc', 'AcQc', 'AhQc', 'AdQc', 'KsQc', 'KcQc', 'KhQc', 'KdQc', 'QhQc', 'QdQc', 'AsQh', 'AcQh', 'AhQh', 'AdQh', 'KsQh', 'KcQh', 'KhQh', 'KdQh', 'QdQh', 'AsQd', 'AcQd', 'AhQd', 'AdQd', 'KsQd', 'KcQd', 'KhQd', 'KdQd', 'AsJs', 'AcJs', 'AhJs', 'AdJs', 'KsJs', 'KcJs', 'KhJs', 'KdJs', 'QsJs', 'QcJs', 'QhJs', 'QdJs', 'JcJs', 'JhJs', 'JdJs', 'AsJc', 'AcJc', 'AhJc', 'AdJc', 'KsJc', 'KcJc', 'KhJc', 'KdJc', 'QsJc', 'QcJc', 'QhJc', 'QdJc', 'JhJc', 'JdJc', 'AsJh', 'AcJh', 'AhJh', 'AdJh', 'KsJh', 'KcJh', 'KhJh', 'KdJh', 'QsJh', 'QcJh', 'QhJh', 'QdJh', 'JdJh', 'AsJd', 'AcJd', 'AhJd', 'AdJd', 'KsJd', 'KcJd', 'KhJd', 'KdJd', 'QsJd', 'QcJd', 'QhJd', 'QdJd', 'AsTs', 'AcTs', 'AhTs', 'AdTs', 'KsTs', 'KcTs', 'KhTs', 'KdTs', 'QsTs', 'QcTs', 'QhTs', 'QdTs', 'JsTs', 'JcTs', 'JhTs', 'JdTs', 'TcTs', 'ThTs', 'TdTs', 'AsTc', 'AcTc', 'AhTc', 'AdTc', 'KsTc', 'KcTc', 'KhTc', 'KdTc', 'QsTc', 'QcTc', 'QhTc', 'QdTc', 'JsTc', 'JcTc', 'JhTc', 'JdTc', 'ThTc', 'TdTc', 'AsTh', 'AcTh', 'AhTh', 'AdTh', 'KsTh', 'KcTh', 'KhTh', 'KdTh', 'QsTh', 'QcTh', 'QhTh', 'QdTh', 'JsTh', 'JcTh', 'JhTh', 'JdTh', 'TdTh', 'AsTd', 'AcTd', 'AhTd', 'AdTd', 'KsTd', 'KcTd', 'KhTd', 'KdTd', 'QsTd', 'QcTd', 'QhTd', 'QdTd', 'JsTd', 'JcTd', 'JhTd', 'JdTd', 'As9s', 'Ac9s', 'Ah9s', 'Ad9s', 'Ks9s', 'Kc9s', 'Kh9s', 'Kd9s', 'Qs9s', 'Qc9s', 'Qh9s', 'Qd9s', 'Js9s', 'Jc9s', 'Jh9s', 'Jd9s', 'Ts9s', 'Tc9s', 'Th9s', 'Td9s', '9c9s', '9h9s', '9d9s', 'As9c', 'Ac9c', 'Ah9c', 'Ad9c', 'Ks9c', 'Kc9c', 'Kh9c', 'Kd9c', 'Qs9c', 'Qc9c', 'Qh9c', 'Qd9c', 'Js9c', 'Jc9c', 'Jh9c', 'Jd9c', 'Ts9c', 'Tc9c', 'Th9c', 'Td9c', '9h9c', '9d9c', 'As9h', 'Ac9h', 'Ah9h', 'Ad9h', 'Ks9h', 'Kc9h', 'Kh9h', 'Kd9h', 'Qs9h', 'Qc9h', 'Qh9h', 'Qd9h', 'Js9h', 'Jc9h', 'Jh9h', 'Jd9h', 'Ts9h', 'Tc9h', 'Th9h', 'Td9h', '9d9h', 'As9d', 'Ac9d', 'Ah9d', 'Ad9d', 'Ks9d', 'Kc9d', 'Kh9d', 'Kd9d', 'Qs9d', 'Qc9d', 'Qh9d', 'Qd9d', 'Js9d', 'Jc9d', 'Jh9d', 'Jd9d', 'Ts9d', 'Tc9d', 'Th9d', 'Td9d', 'As8s', 'Ac8s', 'Ah8s', 'Ad8s', 'Ks8s', 'Kc8s', 'Kh8s', 'Kd8s', 'Qs8s', 'Qc8s', 'Qh8s', 'Qd8s', 'Js8s', 'Jc8s', 'Jh8s', 'Jd8s', 'Ts8s', 'Tc8s', 'Th8s', 'Td8s', '9s8s', '9c8s', '9h8s', '9d8s', '8c8s', '8h8s', '8d8s', 'As8c', 'Ac8c', 'Ah8c', 'Ad8c', 'Ks8c', 'Kc8c', 'Kh8c', 'Kd8c', 'Qs8c', 'Qc8c', 'Qh8c', 'Qd8c', 'Js8c', 'Jc8c', 'Jh8c', 'Jd8c', 'Ts8c', 'Tc8c', 'Th8c', 'Td8c', '9s8c', '9c8c', '9h8c', '9d8c', '8h8c', '8d8c', 'As8h', 'Ac8h', 'Ah8h', 'Ad8h', 'Ks8h', 'Kc8h', 'Kh8h', 'Kd8h', 'Qs8h', 'Qc8h', 'Qh8h', 'Qd8h', 'Js8h', 'Jc8h', 'Jh8h', 'Jd8h', 'Ts8h', 'Tc8h', 'Th8h', 'Td8h', '9s8h', '9c8h', '9h8h', '9d8h', '8d8h', 'As8d', 'Ac8d', 'Ah8d', 'Ad8d', 'Ks8d', 'Kc8d', 'Kh8d', 'Kd8d', 'Qs8d', 'Qc8d', 'Qh8d', 'Qd8d', 'Js8d', 'Jc8d', 'Jh8d', 'Jd8d', 'Ts8d', 'Tc8d', 'Th8d', 'Td8d', '9s8d', '9c8d', '9h8d', '9d8d', 'As7s', 'Ac7s', 'Ah7s', 'Ad7s', 'Ks7s', 'Kc7s', 'Kh7s', 'Kd7s', 'Qs7s', 'Qc7s', 'Qh7s', 'Qd7s', 'Js7s', 'Jc7s', 'Jh7s', 'Jd7s', 'Ts7s', 'Tc7s', 'Th7s', 'Td7s', '9s7s', '9c7s', '9h7s', '9d7s', '8s7s', '8c7s', '8h7s', '8d7s', '7c7s', '7h7s', '7d7s', 'As7c', 'Ac7c', 'Ah7c', 'Ad7c', 'Ks7c', 'Kc7c', 'Kh7c', 'Kd7c', 'Qs7c', 'Qc7c', 'Qh7c', 'Qd7c', 'Js7c', 'Jc7c', 'Jh7c', 'Jd7c', 'Ts7c', 'Tc7c', 'Th7c', 'Td7c', '9s7c', '9c7c', '9h7c', '9d7c', '8s7c', '8c7c', '8h7c', '8d7c', '7h7c', '7d7c', 'As7h', 'Ac7h', 'Ah7h', 'Ad7h', 'Ks7h', 'Kc7h', 'Kh7h', 'Kd7h', 'Qs7h', 'Qc7h', 'Qh7h', 'Qd7h', 'Js7h', 'Jc7h', 'Jh7h', 'Jd7h', 'Ts7h', 'Tc7h', 'Th7h', 'Td7h', '9s7h', '9c7h', '9h7h', '9d7h', '8s7h', '8c7h', '8h7h', '8d7h', '7d7h', 'As7d', 'Ac7d', 'Ah7d', 'Ad7d', 'Ks7d', 'Kc7d', 'Kh7d', 'Kd7d', 'Qs7d', 'Qc7d', 'Qh7d', 'Qd7d', 'Js7d', 'Jc7d', 'Jh7d', 'Jd7d', 'Ts7d', 'Tc7d', 'Th7d', 'Td7d', '9s7d', '9c7d', '9h7d', '9d7d', '8s7d', '8c7d', '8h7d', '8d7d', 'As6s', 'Ac6s', 'Ah6s', 'Ad6s', 'Ks6s', 'Kc6s', 'Kh6s', 'Kd6s', 'Qs6s', 'Qc6s', 'Qh6s', 'Qd6s', 'Js6s', 'Jc6s', 'Jh6s', 'Jd6s', 'Ts6s', 'Tc6s', 'Th6s', 'Td6s', '9s6s', '9c6s', '9h6s', '9d6s', '8s6s', '8c6s', '8h6s', '8d6s', '7s6s', '7c6s', '7h6s', '7d6s', '6c6s', '6h6s', '6d6s', 'As6c', 'Ac6c', 'Ah6c', 'Ad6c', 'Ks6c', 'Kc6c', 'Kh6c', 'Kd6c', 'Qs6c', 'Qc6c', 'Qh6c', 'Qd6c', 'Js6c', 'Jc6c', 'Jh6c', 'Jd6c', 'Ts6c', 'Tc6c', 'Th6c', 'Td6c', '9s6c', '9c6c', '9h6c', '9d6c', '8s6c', '8c6c', '8h6c', '8d6c', '7s6c', '7c6c', '7h6c', '7d6c', '6h6c', '6d6c', 'As6h', 'Ac6h', 'Ah6h', 'Ad6h', 'Ks6h', 'Kc6h', 'Kh6h', 'Kd6h', 'Qs6h', 'Qc6h', 'Qh6h', 'Qd6h', 'Js6h', 'Jc6h', 'Jh6h', 'Jd6h', 'Ts6h', 'Tc6h', 'Th6h', 'Td6h', '9s6h', '9c6h', '9h6h', '9d6h', '8s6h', '8c6h', '8h6h', '8d6h', '7s6h', '7c6h', '7h6h', '7d6h', '6d6h', 'As6d', 'Ac6d', 'Ah6d', 'Ad6d', 'Ks6d', 'Kc6d', 'Kh6d', 'Kd6d', 'Qs6d', 'Qc6d', 'Qh6d', 'Qd6d', 'Js6d', 'Jc6d', 'Jh6d', 'Jd6d', 'Ts6d', 'Tc6d', 'Th6d', 'Td6d', '9s6d', '9c6d', '9h6d', '9d6d', '8s6d', '8c6d', '8h6d', '8d6d', '7s6d', '7c6d', '7h6d', '7d6d', 'As5s', 'Ac5s', 'Ah5s', 'Ad5s', 'Ks5s', 'Kc5s', 'Kh5s', 'Kd5s', 'Qs5s', 'Qc5s', 'Qh5s', 'Qd5s', 'Js5s', 'Jc5s', 'Jh5s', 'Jd5s', 'Ts5s', 'Tc5s', 'Th5s', 'Td5s', '9s5s', '9c5s', '9h5s', '9d5s', '8s5s', '8c5s', '8h5s', '8d5s', '7s5s', '7c5s', '7h5s', '7d5s', '6s5s', '6c5s', '6h5s', '6d5s', '5c5s', '5h5s', '5d5s', 'As5c', 'Ac5c', 'Ah5c', 'Ad5c', 'Ks5c', 'Kc5c', 'Kh5c', 'Kd5c', 'Qs5c', 'Qc5c', 'Qh5c', 'Qd5c', 'Js5c', 'Jc5c', 'Jh5c', 'Jd5c', 'Ts5c', 'Tc5c', 'Th5c', 'Td5c', '9s5c', '9c5c', '9h5c', '9d5c', '8s5c', '8c5c', '8h5c', '8d5c', '7s5c', '7c5c', '7h5c', '7d5c', '6s5c', '6c5c', '6h5c', '6d5c', '5h5c', '5d5c', 'As5h', 'Ac5h', 'Ah5h', 'Ad5h', 'Ks5h', 'Kc5h', 'Kh5h', 'Kd5h', 'Qs5h', 'Qc5h', 'Qh5h', 'Qd5h', 'Js5h', 'Jc5h', 'Jh5h', 'Jd5h', 'Ts5h', 'Tc5h', 'Th5h', 'Td5h', '9s5h', '9c5h', '9h5h', '9d5h', '8s5h', '8c5h', '8h5h', '8d5h', '7s5h', '7c5h', '7h5h', '7d5h', '6s5h', '6c5h', '6h5h', '6d5h', '5d5h', 'As5d', 'Ac5d', 'Ah5d', 'Ad5d', 'Ks5d', 'Kc5d', 'Kh5d', 'Kd5d', 'Qs5d', 'Qc5d', 'Qh5d', 'Qd5d', 'Js5d', 'Jc5d', 'Jh5d', 'Jd5d', 'Ts5d', 'Tc5d', 'Th5d', 'Td5d', '9s5d', '9c5d', '9h5d', '9d5d', '8s5d', '8c5d', '8h5d', '8d5d', '7s5d', '7c5d', '7h5d', '7d5d', '6s5d', '6c5d', '6h5d', '6d5d', 'As4s', 'Ac4s', 'Ah4s', 'Ad4s', 'Ks4s', 'Kc4s', 'Kh4s', 'Kd4s', 'Qs4s', 'Qc4s', 'Qh4s', 'Qd4s', 'Js4s', 'Jc4s', 'Jh4s', 'Jd4s', 'Ts4s', 'Tc4s', 'Th4s', 'Td4s', '9s4s', '9c4s', '9h4s', '9d4s', '8s4s', '8c4s', '8h4s', '8d4s', '7s4s', '7c4s', '7h4s', '7d4s', '6s4s', '6c4s', '6h4s', '6d4s', '5s4s', '5c4s', '5h4s', '5d4s', '4c4s', '4h4s', '4d4s', 'As4c', 'Ac4c', 'Ah4c', 'Ad4c', 'Ks4c', 'Kc4c', 'Kh4c', 'Kd4c', 'Qs4c', 'Qc4c', 'Qh4c', 'Qd4c', 'Js4c', 'Jc4c', 'Jh4c', 'Jd4c', 'Ts4c', 'Tc4c', 'Th4c', 'Td4c', '9s4c', '9c4c', '9h4c', '9d4c', '8s4c', '8c4c', '8h4c', '8d4c', '7s4c', '7c4c', '7h4c', '7d4c', '6s4c', '6c4c', '6h4c', '6d4c', '5s4c', '5c4c', '5h4c', '5d4c', '4h4c', '4d4c', 'As4h', 'Ac4h', 'Ah4h', 'Ad4h', 'Ks4h', 'Kc4h', 'Kh4h', 'Kd4h', 'Qs4h', 'Qc4h', 'Qh4h', 'Qd4h', 'Js4h', 'Jc4h', 'Jh4h', 'Jd4h', 'Ts4h', 'Tc4h', 'Th4h', 'Td4h', '9s4h', '9c4h', '9h4h', '9d4h', '8s4h', '8c4h', '8h4h', '8d4h', '7s4h', '7c4h', '7h4h', '7d4h', '6s4h', '6c4h', '6h4h', '6d4h', '5s4h', '5c4h', '5h4h', '5d4h', '4d4h', 'As4d', 'Ac4d', 'Ah4d', 'Ad4d', 'Ks4d', 'Kc4d', 'Kh4d', 'Kd4d', 'Qs4d', 'Qc4d', 'Qh4d', 'Qd4d', 'Js4d', 'Jc4d', 'Jh4d', 'Jd4d', 'Ts4d', 'Tc4d', 'Th4d', 'Td4d', '9s4d', '9c4d', '9h4d', '9d4d', '8s4d', '8c4d', '8h4d', '8d4d', '7s4d', '7c4d', '7h4d', '7d4d', '6s4d', '6c4d', '6h4d', '6d4d', '5s4d', '5c4d', '5h4d', '5d4d', 'As3s', 'Ac3s', 'Ah3s', 'Ad3s', 'Ks3s', 'Kc3s', 'Kh3s', 'Kd3s', 'Qs3s', 'Qc3s', 'Qh3s', 'Qd3s', 'Js3s', 'Jc3s', 'Jh3s', 'Jd3s', 'Ts3s', 'Tc3s', 'Th3s', 'Td3s', '9s3s', '9c3s', '9h3s', '9d3s', '8s3s', '8c3s', '8h3s', '8d3s', '7s3s', '7c3s', '7h3s', '7d3s', '6s3s', '6c3s', '6h3s', '6d3s', '5s3s', '5c3s', '5h3s', '5d3s', '4s3s', '4c3s', '4h3s', '4d3s', '3c3s', '3h3s', '3d3s', 'As3c', 'Ac3c', 'Ah3c', 'Ad3c', 'Ks3c', 'Kc3c', 'Kh3c', 'Kd3c', 'Qs3c', 'Qc3c', 'Qh3c', 'Qd3c', 'Js3c', 'Jc3c', 'Jh3c', 'Jd3c', 'Ts3c', 'Tc3c', 'Th3c', 'Td3c', '9s3c', '9c3c', '9h3c', '9d3c', '8s3c', '8c3c', '8h3c', '8d3c', '7s3c', '7c3c', '7h3c', '7d3c', '6s3c', '6c3c', '6h3c', '6d3c', '5s3c', '5c3c', '5h3c', '5d3c', '4s3c', '4c3c', '4h3c', '4d3c', '3h3c', '3d3c', 'As3h', 'Ac3h', 'Ah3h', 'Ad3h', 'Ks3h', 'Kc3h', 'Kh3h', 'Kd3h', 'Qs3h', 'Qc3h', 'Qh3h', 'Qd3h', 'Js3h', 'Jc3h', 'Jh3h', 'Jd3h', 'Ts3h', 'Tc3h', 'Th3h', 'Td3h', '9s3h', '9c3h', '9h3h', '9d3h', '8s3h', '8c3h', '8h3h', '8d3h', '7s3h', '7c3h', '7h3h', '7d3h', '6s3h', '6c3h', '6h3h', '6d3h', '5s3h', '5c3h', '5h3h', '5d3h', '4s3h', '4c3h', '4h3h', '4d3h', '3d3h', 'As3d', 'Ac3d', 'Ah3d', 'Ad3d', 'Ks3d', 'Kc3d', 'Kh3d', 'Kd3d', 'Qs3d', 'Qc3d', 'Qh3d', 'Qd3d', 'Js3d', 'Jc3d', 'Jh3d', 'Jd3d', 'Ts3d', 'Tc3d', 'Th3d', 'Td3d', '9s3d', '9c3d', '9h3d', '9d3d', '8s3d', '8c3d', '8h3d', '8d3d', '7s3d', '7c3d', '7h3d', '7d3d', '6s3d', '6c3d', '6h3d', '6d3d', '5s3d', '5c3d', '5h3d', '5d3d', '4s3d', '4c3d', '4h3d', '4d3d', 'As2s', 'Ac2s', 'Ah2s', 'Ad2s', 'Ks2s', 'Kc2s', 'Kh2s', 'Kd2s', 'Qs2s', 'Qc2s', 'Qh2s', 'Qd2s', 'Js2s', 'Jc2s', 'Jh2s', 'Jd2s', 'Ts2s', 'Tc2s', 'Th2s', 'Td2s', '9s2s', '9c2s', '9h2s', '9d2s', '8s2s', '8c2s', '8h2s', '8d2s', '7s2s', '7c2s', '7h2s', '7d2s', '6s2s', '6c2s', '6h2s', '6d2s', '5s2s', '5c2s', '5h2s', '5d2s', '4s2s', '4c2s', '4h2s', '4d2s', '3s2s', '3c2s', '3h2s', '3d2s', '2c2s', '2h2s', '2d2s', 'As2c', 'Ac2c', 'Ah2c', 'Ad2c', 'Ks2c', 'Kc2c', 'Kh2c', 'Kd2c', 'Qs2c', 'Qc2c', 'Qh2c', 'Qd2c', 'Js2c', 'Jc2c', 'Jh2c', 'Jd2c', 'Ts2c', 'Tc2c', 'Th2c', 'Td2c', '9s2c', '9c2c', '9h2c', '9d2c', '8s2c', '8c2c', '8h2c', '8d2c', '7s2c', '7c2c', '7h2c', '7d2c', '6s2c', '6c2c', '6h2c', '6d2c', '5s2c', '5c2c', '5h2c', '5d2c', '4s2c', '4c2c', '4h2c', '4d2c', '3s2c', '3c2c', '3h2c', '3d2c', '2h2c', '2d2c', 'As2h', 'Ac2h', 'Ah2h', 'Ad2h', 'Ks2h', 'Kc2h', 'Kh2h', 'Kd2h', 'Qs2h', 'Qc2h', 'Qh2h', 'Qd2h', 'Js2h', 'Jc2h', 'Jh2h', 'Jd2h', 'Ts2h', 'Tc2h', 'Th2h', 'Td2h', '9s2h', '9c2h', '9h2h', '9d2h', '8s2h', '8c2h', '8h2h', '8d2h', '7s2h', '7c2h', '7h2h', '7d2h', '6s2h', '6c2h', '6h2h', '6d2h', '5s2h', '5c2h', '5h2h', '5d2h', '4s2h', '4c2h', '4h2h', '4d2h', '3s2h', '3c2h', '3h2h', '3d2h', '2d2h', 'As2d', 'Ac2d', 'Ah2d', 'Ad2d', 'Ks2d', 'Kc2d', 'Kh2d', 'Kd2d', 'Qs2d', 'Qc2d', 'Qh2d', 'Qd2d', 'Js2d', 'Jc2d', 'Jh2d', 'Jd2d', 'Ts2d', 'Tc2d', 'Th2d', 'Td2d', '9s2d', '9c2d', '9h2d', '9d2d', '8s2d', '8c2d', '8h2d', '8d2d', '7s2d', '7c2d', '7h2d', '7d2d', '6s2d', '6c2d', '6h2d', '6d2d', '5s2d', '5c2d', '5h2d', '5d2d', '4s2d', '4c2d', '4h2d', '4d2d', '3s2d', '3c2d', '3h2d', '3d2d']

```

```
['AhAs', 'AsAd', 'AcAs', 'AdAh', 'AcAh', 'AdAc', 'AsKs', 'AhKs', 'AdKs', 'AcKs', 'KsKh', 'KdKs', 'KsKc', 'AsKh', 'AhKh', 'AdKh', 'AcKh', 'KdKh', 'KcKh', 'AsKd', 'AhKd', 'AdKd', 'AcKd', 'KcKd', 'AsKc', 'AhKc', 'AdKc', 'AcKc', 'AsQs', 'AhQs', 'AdQs', 'AcQs', 'KsQs', 'KhQs', 'KdQs', 'KcQs', 'QsQh', 'QdQs', 'QcQs', 'AsQh', 'AhQh', 'AdQh', 'AcQh', 'KsQh', 'KhQh', 'KdQh', 'KcQh', 'QhQd', 'QhQc', 'AsQd', 'AhQd', 'AdQd', 'AcQd', 'KsQd', 'KhQd', 'KdQd', 'KcQd', 'QdQc', 'AsQc', 'AhQc', 'AdQc', 'AcQc', 'KsQc', 'KhQc', 'KdQc', 'KcQc', 'AsJs', 'AhJs', 'AdJs', 'AcJs', 'KsJs', 'KhJs', 'KdJs', 'KcJs', 'QsJs', 'QhJs', 'QdJs', 'QcJs', 'JsJh', 'JsJd', 'JcJs', 'AsJh', 'AhJh', 'AdJh', 'AcJh', 'KsJh', 'KhJh', 'KdJh', 'KcJh', 'QsJh', 'QhJh', 'QdJh', 'QcJh', 'JdJh', 'JcJh', 'AsJd', 'AhJd', 'AdJd', 'AcJd', 'KsJd', 'KhJd', 'KdJd', 'KcJd', 'QsJd', 'QhJd', 'QdJd', 'QcJd', 'JdJc', 'AsJc', 'AhJc', 'AdJc', 'AcJc', 'KsJc', 'KhJc', 'KdJc', 'KcJc', 'QsJc', 'QhJc', 'QdJc', 'QcJc', 'AsTs', 'AhTs', 'AdTs', 'AcTs', 'KsTs', 'KhTs', 'KdTs', 'KcTs', 'QsTs', 'QhTs', 'QdTs', 'QcTs', 'JsTs', 'JhTs', 'JdTs', 'JcTs', 'ThTs', 'TsTd', 'TsTc', 'AsTh', 'AhTh', 'AdTh', 'AcTh', 'KsTh', 'KhTh', 'KdTh', 'KcTh', 'QsTh', 'QhTh', 'QdTh', 'QcTh', 'JsTh', 'JhTh', 'JdTh', 'JcTh', 'TdTh', 'ThTc', 'AsTd', 'AhTd', 'AdTd', 'AcTd', 'KsTd', 'KhTd', 'KdTd', 'KcTd', 'QsTd', 'QhTd', 'QdTd', 'QcTd', 'JsTd', 'JhTd', 'JdTd', 'JcTd', 'TdTc', 'AsTc', 'AhTc', 'AdTc', 'AcTc', 'KsTc', 'KhTc', 'KdTc', 'KcTc', 'QsTc', 'QhTc', 'QdTc', 'QcTc', 'JsTc', 'JhTc', 'JdTc', 'JcTc', 'As9s', 'Ah9s', 'Ad9s', 'Ac9s', 'Ks9s', 'Kh9s', 'Kd9s', 'Kc9s', 'Qs9s', 'Qh9s', 'Qd9s', 'Qc9s', 'Js9s', 'Jh9s', 'Jd9s', 'Jc9s', 'Ts9s', 'Th9s', 'Td9s', 'Tc9s', '9s9h', '9d9s', '9s9c', 'As9h', 'Ah9h', 'Ad9h', 'Ac9h', 'Ks9h', 'Kh9h', 'Kd9h', 'Kc9h', 'Qs9h', 'Qh9h', 'Qd9h', 'Qc9h', 'Js9h', 'Jh9h', 'Jd9h', 'Jc9h', 'Ts9h', 'Th9h', 'Td9h', 'Tc9h', '9h9d', '9h9c', 'As9d', 'Ah9d', 'Ad9d', 'Ac9d', 'Ks9d', 'Kh9d', 'Kd9d', 'Kc9d', 'Qs9d', 'Qh9d', 'Qd9d', 'Qc9d', 'Js9d', 'Jh9d', 'Jd9d', 'Jc9d', 'Ts9d', 'Th9d', 'Td9d', 'Tc9d', '9c9d', 'As9c', 'Ah9c', 'Ad9c', 'Ac9c', 'Ks9c', 'Kh9c', 'Kd9c', 'Kc9c', 'Qs9c', 'Qh9c', 'Qd9c', 'Qc9c', 'Js9c', 'Jh9c', 'Jd9c', 'Jc9c', 'Ts9c', 'Th9c', 'Td9c', 'Tc9c', 'As8s', 'Ah8s', 'Ad8s', 'Ac8s', 'Ks8s', 'Kh8s', 'Kd8s', 'Kc8s', 'Qs8s', 'Qh8s', 'Qd8s', 'Qc8s', 'Js8s', 'Jh8s', 'Jd8s', 'Jc8s', 'Ts8s', 'Th8s', 'Td8s', 'Tc8s', '9s8s', '9h8s', '9d8s', '9c8s', '8h8s', '8s8d', '8s8c', 'As8h', 'Ah8h', 'Ad8h', 'Ac8h', 'Ks8h', 'Kh8h', 'Kd8h', 'Kc8h', 'Qs8h', 'Qh8h', 'Qd8h', 'Qc8h', 'Js8h', 'Jh8h', 'Jd8h', 'Jc8h', 'Ts8h', 'Th8h', 'Td8h', 'Tc8h', '9s8h', '9h8h', '9d8h', '9c8h', '8d8h', '8h8c', 'As8d', 'Ah8d', 'Ad8d', 'Ac8d', 'Ks8d', 'Kh8d', 'Kd8d', 'Kc8d', 'Qs8d', 'Qh8d', 'Qd8d', 'Qc8d', 'Js8d', 'Jh8d', 'Jd8d', 'Jc8d', 'Ts8d', 'Th8d', 'Td8d', 'Tc8d', '9s8d', '9h8d', '9d8d', '9c8d', '8c8d', 'As8c', 'Ah8c', 'Ad8c', 'Ac8c', 'Ks8c', 'Kh8c', 'Kd8c', 'Kc8c', 'Qs8c', 'Qh8c', 'Qd8c', 'Qc8c', 'Js8c', 'Jh8c', 'Jd8c', 'Jc8c', 'Ts8c', 'Th8c', 'Td8c', 'Tc8c', '9s8c', '9h8c', '9d8c', '9c8c', 'As7s', 'Ah7s', 'Ad7s', 'Ac7s', 'Ks7s', 'Kh7s', 'Kd7s', 'Kc7s', 'Qs7s', 'Qh7s', 'Qd7s', 'Qc7s', 'Js7s', 'Jh7s', 'Jd7s', 'Jc7s', 'Ts7s', 'Th7s', 'Td7s', 'Tc7s', '9s7s', '9h7s', '9d7s', '9c7s', '8s7s', '8h7s', '8d7s', '8c7s', '7s7h', '7s7d', '7s7c', 'As7h', 'Ah7h', 'Ad7h', 'Ac7h', 'Ks7h', 'Kh7h', 'Kd7h', 'Kc7h', 'Qs7h', 'Qh7h', 'Qd7h', 'Qc7h', 'Js7h', 'Jh7h', 'Jd7h', 'Jc7h', 'Ts7h', 'Th7h', 'Td7h', 'Tc7h', '9s7h', '9h7h', '9d7h', '9c7h', '8s7h', '8h7h', '8d7h', '8c7h', '7d7h', '7c7h', 'As7d', 'Ah7d', 'Ad7d', 'Ac7d', 'Ks7d', 'Kh7d', 'Kd7d', 'Kc7d', 'Qs7d', 'Qh7d', 'Qd7d', 'Qc7d', 'Js7d', 'Jh7d', 'Jd7d', 'Jc7d', 'Ts7d', 'Th7d', 'Td7d', 'Tc7d', '9s7d', '9h7d', '9d7d', '9c7d', '8s7d', '8h7d', '8d7d', '8c7d', '7d7c', 'As7c', 'Ah7c', 'Ad7c', 'Ac7c', 'Ks7c', 'Kh7c', 'Kd7c', 'Kc7c', 'Qs7c', 'Qh7c', 'Qd7c', 'Qc7c', 'Js7c', 'Jh7c', 'Jd7c', 'Jc7c', 'Ts7c', 'Th7c', 'Td7c', 'Tc7c', '9s7c', '9h7c', '9d7c', '9c7c', '8s7c', '8h7c', '8d7c', '8c7c', 'As6s', 'Ah6s', 'Ad6s', 'Ac6s', 'Ks6s', 'Kh6s', 'Kd6s', 'Kc6s', 'Qs6s', 'Qh6s', 'Qd6s', 'Qc6s', 'Js6s', 'Jh6s', 'Jd6s', 'Jc6s', 'Ts6s', 'Th6s', 'Td6s', 'Tc6s', '9s6s', '9h6s', '9d6s', '9c6s', '8s6s', '8h6s', '8d6s', '8c6s', '7s6s', '7h6s', '7d6s', '7c6s', '6s6h', '6s6d', '6c6s', 'As6h', 'Ah6h', 'Ad6h', 'Ac6h', 'Ks6h', 'Kh6h', 'Kd6h', 'Kc6h', 'Qs6h', 'Qh6h', 'Qd6h', 'Qc6h', 'Js6h', 'Jh6h', 'Jd6h', 'Jc6h', 'Ts6h', 'Th6h', 'Td6h', 'Tc6h', '9s6h', '9h6h', '9d6h', '9c6h', '8s6h', '8h6h', '8d6h', '8c6h', '7s6h', '7h6h', '7d6h', '7c6h', '6d6h', '6c6h', 'As6d', 'Ah6d', 'Ad6d', 'Ac6d', 'Ks6d', 'Kh6d', 'Kd6d', 'Kc6d', 'Qs6d', 'Qh6d', 'Qd6d', 'Qc6d', 'Js6d', 'Jh6d', 'Jd6d', 'Jc6d', 'Ts6d', 'Th6d', 'Td6d', 'Tc6d', '9s6d', '9h6d', '9d6d', '9c6d', '8s6d', '8h6d', '8d6d', '8c6d', '7s6d', '7h6d', '7d6d', '7c6d', '6d6c', 'As6c', 'Ah6c', 'Ad6c', 'Ac6c', 'Ks6c', 'Kh6c', 'Kd6c', 'Kc6c', 'Qs6c', 'Qh6c', 'Qd6c', 'Qc6c', 'Js6c', 'Jh6c', 'Jd6c', 'Jc6c', 'Ts6c', 'Th6c', 'Td6c', 'Tc6c', '9s6c', '9h6c', '9d6c', '9c6c', '8s6c', '8h6c', '8d6c', '8c6c', '7s6c', '7h6c', '7d6c', '7c6c', 'As5s', 'Ah5s', 'Ad5s', 'Ac5s', 'Ks5s', 'Kh5s', 'Kd5s', 'Kc5s', 'Qs5s', 'Qh5s', 'Qd5s', 'Qc5s', 'Js5s', 'Jh5s', 'Jd5s', 'Jc5s', 'Ts5s', 'Th5s', 'Td5s', 'Tc5s', '9s5s', '9h5s', '9d5s', '9c5s', '8s5s', '8h5s', '8d5s', '8c5s', '7s5s', '7h5s', '7d5s', '7c5s', '6s5s', '6h5s', '6d5s', '6c5s', '5s5h', '5s5d', '5c5s', 'As5h', 'Ah5h', 'Ad5h', 'Ac5h', 'Ks5h', 'Kh5h', 'Kd5h', 'Kc5h', 'Qs5h', 'Qh5h', 'Qd5h', 'Qc5h', 'Js5h', 'Jh5h', 'Jd5h', 'Jc5h', 'Ts5h', 'Th5h', 'Td5h', 'Tc5h', '9s5h', '9h5h', '9d5h', '9c5h', '8s5h', '8h5h', '8d5h', '8c5h', '7s5h', '7h5h', '7d5h', '7c5h', '6s5h', '6h5h', '6d5h', '6c5h', '5d5h', '5h5c', 'As5d', 'Ah5d', 'Ad5d', 'Ac5d', 'Ks5d', 'Kh5d', 'Kd5d', 'Kc5d', 'Qs5d', 'Qh5d', 'Qd5d', 'Qc5d', 'Js5d', 'Jh5d', 'Jd5d', 'Jc5d', 'Ts5d', 'Th5d', 'Td5d', 'Tc5d', '9s5d', '9h5d', '9d5d', '9c5d', '8s5d', '8h5d', '8d5d', '8c5d', '7s5d', '7h5d', '7d5d', '7c5d', '6s5d', '6h5d', '6d5d', '6c5d', '5d5c', 'As5c', 'Ah5c', 'Ad5c', 'Ac5c', 'Ks5c', 'Kh5c', 'Kd5c', 'Kc5c', 'Qs5c', 'Qh5c', 'Qd5c', 'Qc5c', 'Js5c', 'Jh5c', 'Jd5c', 'Jc5c', 'Ts5c', 'Th5c', 'Td5c', 'Tc5c', '9s5c', '9h5c', '9d5c', '9c5c', '8s5c', '8h5c', '8d5c', '8c5c', '7s5c', '7h5c', '7d5c', '7c5c', '6s5c', '6h5c', '6d5c', '6c5c', 'As4s', 'Ah4s', 'Ad4s', 'Ac4s', 'Ks4s', 'Kh4s', 'Kd4s', 'Kc4s', 'Qs4s', 'Qh4s', 'Qd4s', 'Qc4s', 'Js4s', 'Jh4s', 'Jd4s', 'Jc4s', 'Ts4s', 'Th4s', 'Td4s', 'Tc4s', '9s4s', '9h4s', '9d4s', '9c4s', '8s4s', '8h4s', '8d4s', '8c4s', '7s4s', '7h4s', '7d4s', '7c4s', '6s4s', '6h4s', '6d4s', '6c4s', '5s4s', '5h4s', '5d4s', '5c4s', '4s4h', '4s4d', '4s4c', 'As4h', 'Ah4h', 'Ad4h', 'Ac4h', 'Ks4h', 'Kh4h', 'Kd4h', 'Kc4h', 'Qs4h', 'Qh4h', 'Qd4h', 'Qc4h', 'Js4h', 'Jh4h', 'Jd4h', 'Jc4h', 'Ts4h', 'Th4h', 'Td4h', 'Tc4h', '9s4h', '9h4h', '9d4h', '9c4h', '8s4h', '8h4h', '8d4h', '8c4h', '7s4h', '7h4h', '7d4h', '7c4h', '6s4h', '6h4h', '6d4h', '6c4h', '5s4h', '5h4h', '5d4h', '5c4h', '4h4d', '4c4h', 'As4d', 'Ah4d', 'Ad4d', 'Ac4d', 'Ks4d', 'Kh4d', 'Kd4d', 'Kc4d', 'Qs4d', 'Qh4d', 'Qd4d', 'Qc4d', 'Js4d', 'Jh4d', 'Jd4d', 'Jc4d', 'Ts4d', 'Th4d', 'Td4d', 'Tc4d', '9s4d', '9h4d', '9d4d', '9c4d', '8s4d', '8h4d', '8d4d', '8c4d', '7s4d', '7h4d', '7d4d', '7c4d', '6s4d', '6h4d', '6d4d', '6c4d', '5s4d', '5h4d', '5d4d', '5c4d', '4d4c', 'As4c', 'Ah4c', 'Ad4c', 'Ac4c', 'Ks4c', 'Kh4c', 'Kd4c', 'Kc4c', 'Qs4c', 'Qh4c', 'Qd4c', 'Qc4c', 'Js4c', 'Jh4c', 'Jd4c', 'Jc4c', 'Ts4c', 'Th4c', 'Td4c', 'Tc4c', '9s4c', '9h4c', '9d4c', '9c4c', '8s4c', '8h4c', '8d4c', '8c4c', '7s4c', '7h4c', '7d4c', '7c4c', '6s4c', '6h4c', '6d4c', '6c4c', '5s4c', '5h4c', '5d4c', '5c4c', 'As3s', 'Ah3s', 'Ad3s', 'Ac3s', 'Ks3s', 'Kh3s', 'Kd3s', 'Kc3s', 'Qs3s', 'Qh3s', 'Qd3s', 'Qc3s', 'Js3s', 'Jh3s', 'Jd3s', 'Jc3s', 'Ts3s', 'Th3s', 'Td3s', 'Tc3s', '9s3s', '9h3s', '9d3s', '9c3s', '8s3s', '8h3s', '8d3s', '8c3s', '7s3s', '7h3s', '7d3s', '7c3s', '6s3s', '6h3s', '6d3s', '6c3s', '5s3s', '5h3s', '5d3s', '5c3s', '4s3s', '4h3s', '4d3s', '4c3s', '3s3h', '3s3d', '3s3c', 'As3h', 'Ah3h', 'Ad3h', 'Ac3h', 'Ks3h', 'Kh3h', 'Kd3h', 'Kc3h', 'Qs3h', 'Qh3h', 'Qd3h', 'Qc3h', 'Js3h', 'Jh3h', 'Jd3h', 'Jc3h', 'Ts3h', 'Th3h', 'Td3h', 'Tc3h', '9s3h', '9h3h', '9d3h', '9c3h', '8s3h', '8h3h', '8d3h', '8c3h', '7s3h', '7h3h', '7d3h', '7c3h', '6s3h', '6h3h', '6d3h', '6c3h', '5s3h', '5h3h', '5d3h', '5c3h', '4s3h', '4h3h', '4d3h', '4c3h', '3h3d', '3h3c', 'As3d', 'Ah3d', 'Ad3d', 'Ac3d', 'Ks3d', 'Kh3d', 'Kd3d', 'Kc3d', 'Qs3d', 'Qh3d', 'Qd3d', 'Qc3d', 'Js3d', 'Jh3d', 'Jd3d', 'Jc3d', 'Ts3d', 'Th3d', 'Td3d', 'Tc3d', '9s3d', '9h3d', '9d3d', '9c3d', '8s3d', '8h3d', '8d3d', '8c3d', '7s3d', '7h3d', '7d3d', '7c3d', '6s3d', '6h3d', '6d3d', '6c3d', '5s3d', '5h3d', '5d3d', '5c3d', '4s3d', '4h3d', '4d3d', '4c3d', '3c3d', 'As3c', 'Ah3c', 'Ad3c', 'Ac3c', 'Ks3c', 'Kh3c', 'Kd3c', 'Kc3c', 'Qs3c', 'Qh3c', 'Qd3c', 'Qc3c', 'Js3c', 'Jh3c', 'Jd3c', 'Jc3c', 'Ts3c', 'Th3c', 'Td3c', 'Tc3c', '9s3c', '9h3c', '9d3c', '9c3c', '8s3c', '8h3c', '8d3c', '8c3c', '7s3c', '7h3c', '7d3c', '7c3c', '6s3c', '6h3c', '6d3c', '6c3c', '5s3c', '5h3c', '5d3c', '5c3c', '4s3c', '4h3c', '4d3c', '4c3c', 'As2s', 'Ah2s', 'Ad2s', 'Ac2s', 'Ks2s', 'Kh2s', 'Kd2s', 'Kc2s', 'Qs2s', 'Qh2s', 'Qd2s', 'Qc2s', 'Js2s', 'Jh2s', 'Jd2s', 'Jc2s', 'Ts2s', 'Th2s', 'Td2s', 'Tc2s', '9s2s', '9h2s', '9d2s', '9c2s', '8s2s', '8h2s', '8d2s', '8c2s', '7s2s', '7h2s', '7d2s', '7c2s', '6s2s', '6h2s', '6d2s', '6c2s', '5s2s', '5h2s', '5d2s', '5c2s', '4s2s', '4h2s', '4d2s', '4c2s', '3s2s', '3h2s', '3d2s', '3c2s', '2s2h', '2s2d', '2s2c', 'As2h', 'Ah2h', 'Ad2h', 'Ac2h', 'Ks2h', 'Kh2h', 'Kd2h', 'Kc2h', 'Qs2h', 'Qh2h', 'Qd2h', 'Qc2h', 'Js2h', 'Jh2h', 'Jd2h', 'Jc2h', 'Ts2h', 'Th2h', 'Td2h', 'Tc2h', '9s2h', '9h2h', '9d2h', '9c2h', '8s2h', '8h2h', '8d2h', '8c2h', '7s2h', '7h2h', '7d2h', '7c2h', '6s2h', '6h2h', '6d2h', '6c2h', '5s2h', '5h2h', '5d2h', '5c2h', '4s2h', '4h2h', '4d2h', '4c2h', '3s2h', '3h2h', '3d2h', '3c2h', '2d2h', '2c2h', 'As2d', 'Ah2d', 'Ad2d', 'Ac2d', 'Ks2d', 'Kh2d', 'Kd2d', 'Kc2d', 'Qs2d', 'Qh2d', 'Qd2d', 'Qc2d', 'Js2d', 'Jh2d', 'Jd2d', 'Jc2d', 'Ts2d', 'Th2d', 'Td2d', 'Tc2d', '9s2d', '9h2d', '9d2d', '9c2d', '8s2d', '8h2d', '8d2d', '8c2d', '7s2d', '7h2d', '7d2d', '7c2d', '6s2d', '6h2d', '6d2d', '6c2d', '5s2d', '5h2d', '5d2d', '5c2d', '4s2d', '4h2d', '4d2d', '4c2d', '3s2d', '3h2d', '3d2d', '3c2d', '2c2d', 'As2c', 'Ah2c', 'Ad2c', 'Ac2c', 'Ks2c', 'Kh2c', 'Kd2c', 'Kc2c', 'Qs2c', 'Qh2c', 'Qd2c', 'Qc2c', 'Js2c', 'Jh2c', 'Jd2c', 'Jc2c', 'Ts2c', 'Th2c', 'Td2c', 'Tc2c', '9s2c', '9h2c', '9d2c', '9c2c', '8s2c', '8h2c', '8d2c', '8c2c', '7s2c', '7h2c', '7d2c', '7c2c', '6s2c', '6h2c', '6d2c', '6c2c', '5s2c', '5h2c', '5d2c', '5c2c', '4s2c', '4h2c', '4d2c', '4c2c', '3s2c', '3h2c', '3d2c', '3c2c']

```

```
QhQs 7s3d Tc3s KhQd Kh4c 8s6d Ts5s Tc4c Jd8c Ks3c Ah8c Jd5s QhTh Ad2c 9c5c 9d3d QcJc 6s3h Qc5s Ah7h 8d8s 7d4s 4c3c 6c6h 7s4h 9d8d Qs6s Ah9d AcTc 4c2d 9h3h Tc4h 8h3h Ts3d Ks5c 8d2s 7s2s 5c3c Kh2h KcTc Ad3c 7d2s AsKs 6c2c 5d4c AdKh 9d7c 3s2d KsTd Qc4c 6c6s AdKs 9s5c Ac2h 4d2c Ac6c Qh3d Qh4d 7h4s Ts6s 6h2s 6d4c Js2c Ks4c Jh2h 8s5c Kc8d 8h5d 9h5h AcQh JhTs 6d5c Qh9s Kh7s Jd8s Ad2h Ts2d Js8d Ts2c Js5d 9h6d KcJh Kh2c KdJd Tc3d Jh6d KdJs Kd9h 5h4s Jd2c QdTc KhQh 4d4h 7c2d Qh6s Ks6c Jc4h AdJh Ts3h Kd3d 3s2s AcQc 7s3c AcTs Th4d Qd5s Jh8s KdTd Tc5c 4c2h 8d2c 8d4c 9s2d 9h2d 9h6h 5c4h 9s2h 7s5c Tc5s 6d3c Ad8d Kc4h Td8c Th6d KdTh Ts5c Ks8s 4s3d 7c5h 7d6h 6h5d Td8d Kd8c JcTd 6s2c 7c4d AsTh Td3d Jc2d Kd9d 7c4h AdJd Td4s 5h5s Ac6d Ad4c Jh5h 9c4c As5h Th4h AcJh 5d2d KcQs 8s2d 7h6c 7c6d Ad8s 9h8c AhKd 9c4h 9c5d 4c3d Kd9s Kh2s AhJd Js2h Ts7s Th2h Qc4d 5h3d 6d4s 6d3h Ah5d 5c2d Jc8s 7c3c JdJs 4s3s Qs7h AhQh Qs9d Qh8h 8h7s 8s7s Kh2d 7c4s As3d 9s5s Qs6d 9h5c Qs6h Jd6h Qh7d Qs8s 9d4s Qc3h JcJh Kc4d QdTs Tc8d Qd5h Qs2s Jh4h 4d2h Kc6d 9h6c Qs9c Js4s Jd3d Tc9s KcQd 7d6c KcTd 8d5s Ad7s 4c3s AcKh 5s2h QdJc Js6h 4c2c 9h7c Ah5c KsJh Kh5c Qs4c KsJs Td3c 6s4c 8s6h 7c6c 7s2h Jd9h 5d2s Js6s 6s2s Kc7d Ac4d 8s7d Kc8c Jh2d Kd9c Td9h Qd4s Ad6s Qd3c Ac4s Th3d As5c QsTs KcJd 5h3h 8d7s 6h6s Qc9c AhJc Ks3s 6d6s 5s3h Kd6c Th3s Qh8s Qc6s AdAc Jc6c As8s QcQs 8c5h As7h Ac6s Th8c 3h2c Tc6d Jc9s 8d5h Ah7c Ks8h AdAh Kd3h 4d3s 8c5d Kh5d Jd2s 7s3s 9d5c 9s3h 7d2d 3h3s 5s3s AdTh Tc9c As2d Tc9d 9s8s KhTc AhTc 2d2c 8c7s 8c7d KdQc 9d2s Qs8c 7h5s Jd3h Kc8s Qc9h 8c5s Td4h 3d3h JhTh As8h 7d4h Ad6h 9s3s AsJc Ad3s Ah6c 9s2c 8h6s 7s6h 5s4h As2h Tc3h As4d Qh2h 9h7d Jc8d Jh8c 2c2s 9d8c Ac2s Ts9d 3c3h AcKd Jh2c Ah3s As6s Tc9h Kc2h Td2h QsJd Kc6c Ac4h 7h2h JcTc 8s3d Ah6h KhJd Ah5s Kh3c Kd4d 9h7h 5s2c 8c6c Jh5d Qc8d 8d7d 8c3s Qd6h 5s2d 9s8d Tc2c 5c4d 6s4d Kd3c Kc6h Ac3d 4d2s 6h2d Jc6s 3c2s QcTc KhJc Ks6d Qs7c As3h 3d3c Kc9h Qh9h 8d2h Jd4c Qc2d Kc3h Qd8s Ts6d As8c Qh3s Kc8h Qs9h AhQc Ad6c Ts4c Js9d AsQh 8s3h 9c2c 9s6h 7c6s 6d3s Td4d Ah2c Kc5h Jd6s KdKs Qh9d 7s2c 3c2c 8s4s 5d2c Js7c KcQc Js5h 6s4s Ah4c Qd2s Ts3s Qd8h 9c2s 9d5d Td2d 7d6s 5d3h Qd6s 6c3c 8s4h Qc7c Td8h Qs2d 7h3h 9c7d AsQs 4h2s Kh7d AhAs 4d3h 4h4s 5c2h 8h3s Kc6s Js7s Ts6c QcJs QhJd Qc6c Kc7s JcTs 6c3d Ks5d AcQd 5d2h 7c2s Jc2s 7d7h KhTd Td5h As4h KcQh 7h7s Th5c As2c 6c5d Td9s Qc7s Qh2d 6c2d As2s 6d2c Th7d KdQh 9d8s 8h2s Qh5d Qs2h 9d4h Tc7d Th7c Th6s 7c5c 8h8s 8h2d 5h2d Ad4s 9c9s Ah4d Qd3h Kc4s Kd3s Ks5s Jh9d 8c6s Qc5c 5c5s 8c6h 9d4d 9c6d Ac9s Qd8d Td6c 6s5c 8h3d Qc8c 9s7d Jd7s AsTd 8c5c 8d8c Qh5h Qs3d 9h3c Ah8h Ks9h Kc7c 7h2s Th9s 8d6c Js3h 7s5s Ad8h Qd7s 3h2h Js6c Kd8s Qh4s 7c6h Kd7h Th7s Qh3h Th5d Kd8h JhTd Js4d AsJh AcKc 9s6s Ts4h Td3h 9c5s Js2d Qs3h Qh2s Td5d Kd8d Td9d 6h4d Jh9c Td7c Kd5s Jc4d 8d4h 7d7c Kd5d 6c4d Ad7d Kd5c Ks4s Ts2h 5d3c 9d2c Jd5c Jh3h 4c2s Qh6c AhKc 9h2h QcQh 5h2c Kc4c Ad6d Jh7c Js7h 9c2h 3s2h 8c8s 8s7c Qc5h QsJc 7s6s 5s2s Td7h 8h5c AcJd Kd5h KdKc 7h5d 7d4d 8s5d 8c2h Jd7c KsQs 7c3h 6c5s 9c7c Qs4d Js8h 9d3h 9c3h 5h2h AhTd Qc7h AdJs As3c Kd2h 7h4d 7h3s 6h3d 5d4d Qc6d 9d8h Js4c 7d6d Ac3h Qs7s JdTh 9s4d 9c4d Ac4c 4h2h 3h2s 5d4s 9h7s Ks7c Kh9d Ks2d Kh6h 4c4s 8c2c Ad5d Qh3c 8h2h 8s4d Jh9h Qc2h 6c2s Jh5c 9h4d Ac9d Kh6s Qd3s 7c2h Ad8c AsTc Kh8s 6c4h Qd6c 3d3s ThTs Jh9s Qs3c Th4c Qh2c 9h9s 4d3c 8s2h 7s4d Td7s Qc4h Jd2h Ks7d Jd4s Jc5d Qc2c Ts2s 8d3s Qd7c KcKh 9s7c 4h3s 3d2h 6c5h 6d5h Kh4h Ac9h AcTh Kd2c JsTc 8d6s Kh7c Qd8c 7d3c 6d4h Ts4s Qh4h Tc8c 7s4c Ad2d Kh9s Th9c Kh3h AhQs 6h4s Kc2s 8s6c 5c3s As9c Th6h AdKc Qh7h Jd4d KhTs AsKh 7h6d Js5s 4s2c 5d5c Jd3s Jc3h Td9c KsJd QdQh 5h4c Jd5h Ah3c Ac7s 7s6d 6c4s Th2d Jh4s 7h6s Jd3c Kc5s 5c2s 9s8h Ah8d QhTd 8c2d 6h2c Ac2d 5c3h 9c6s 9h4s Kc3s 6c3s 9d6s Kc2c 6s4h As4c 7h4h 9h5d 9d9c Kh7h Ah4s 9d2h 7c4c As9s 6d4d Jh6c Js8s 6h5c Jd6d Tc2h Td6d 7d4c AdKd Ad9s Ah3h Qd7d Kh9h Jc9c Jc8h 4s2s 5h4d QsTh 8d5d Qd9s Js3s Tc2d Jc7c Qh5s Qd4h TdTc 9c8d KsTh 3d2d AhTs 7d7s 7c7h Kc2d Th2s Qd2h Td4c 5s4d 8h4c Qc6h Tc7c 9d6c 8s3c KsTs 6d2d Ts8h 5h3c QsJs 3h2d Kh8h 7h6h Jc4c 8c6d Ad9h 9h5s 9h6s AcTd 9c6c AhKh 8d8h Js8c 4h2d 9c4s Kc3d 8c8h As5d Jh4c 2c2h Qc4s 8d4s KhQc 8d3d As4s Jc3c AdQs Ah6s 9d6h 8d4d AdQd JsTh Kc5d Ad5c KsTc Qd3d QcTs Kd4h 8d3h 8d2d KhQs 3c2h 3c3s JdJh Ac6h 4s2h Jc4s Kd7d AdQh AsJs Th7h QcJh Qc3d AdTc Jd2d Qd4c 9s4s Qs5h Qh9c Ah8s Jh3c 9h4h Ks4h 5c4c AhKs QsJh Kc5c 9c3c 9d5s KcTs Ac5s 5c5h 5s3d Ks8c Qs7d Kh8d Td3s 4s3h Qh6h JcJs Jd6c QsTd Qc3s Qd7h 9h4c Qd5c 6c2h 7h5h AcJs 8d7c 6c5c Js2s Qh4c Qc9s 9s7h 4d3d 7h3d AsQd Ks9d 5s4c Td6h Kh4d QcJd Jc5c Ac5c 3c2d Ac8s Th9h Jd9d Jh5s 5h4h 7c7s Th2c JcTh Th3c AhQd Ac2c Jd9c AcAs 9h8s KsQh Jh4d 7d3d Qs8h QhTc Th5s 9d2d 6h5s 8h6h 8c3c Th6c Jc2h Jc9d Kh3d 7s6c Ac8d Jd8d Ts5d 7s3h Kd2s 9d6d 8s2s Ks2c Jh8h Ac7h AdQc 5s4s AsKd JdTs Qh5c Qc7d Qh7c Ah4h QdQs 6s2d Qc3c Jc8c Kh5h QsTc QhJs 9s6c AcAh 7h3c 8c7h Qc5d 8h6d 7c3d 8c3h Jd7h Ts8d Ah7d 4h3h Jc3d As9h 5h3s 8c2s 5c3d 7c5d Jh7s Ts8c AhTh 7h5c 9c5h Qh6d 7h2d 8h6c Tc8h QdJh AdAs Js3d 6h4c Qd2c Ad9d Tc4s Qd5d 9c2d TcTs TcTh Qs9s 7h2c 5d3s Ks6h AdTs Ah2h 5c2c Tc3c Jh7d Ad9c AcQs 6s3s 6d5d Tc7s KdQs 9s6d Ks9s KcJs JdTc 9d7h KhTh Kd7s Tc8s Js6d 7s2d 6d2h 9s4c As6d Jc7d KcKs 6d6c 8h7c Td5s Ks3h Js3c 6h5h 6s5h Jd4h 8c3d 6d2s Kd6h 9s8c 7c5s Td7d Th8s 9c9h As6c QdJs QcTd JhJs Kh9c Qs5d 9c3s Qh8c 9d5h Th9d 9s5d Jc6d Jh7h AsKc As6h 6d3d 9d7d KdTc JdTd 6s3c Tc6c KsQd Js9h Ts9s Qc8h Kh6d 9d7s Jh3d Jc9h 8h4h JdJc Qs2c 3s2c 2d2s 8s6s Ks6s Jd8h Ts6h Jc5s 7d5d Qs4s 8s5s Kd2d 4c4h Ks2s KsQc Js4h 2d2h Ks3d 4d4s Tc6h 9d9h Ac8c 5s3c Qs5s Ks5h Qh8d 6h3c Kd4s 8h5s Ah9s Tc6s 6s2h 9s7s 9s3d 4h3d 9h8d 3d2s Th8d As9d QdTd Qc9d Jd7d KhKs 8s7h 8s2c 9d3c Ts9c 2h2s Ad4h Ad5h Tc5h As7d As7c 5d5h Kc9c As5s 9s2s Qc2s Jc3s 9c3d 5h2s 6h4h 5d4h 6c3h 9d3s Kd7c 8h4d Ac3s 4c3h Ts7d 8c4d Ks8d Td8s Th3h Ah9c Qs6c 8h3c 4s2d 5d5s KcJc 8h5h Jc7h KdJc Qs8d 8d5c Jc7s 8d7h 8c4c 6c4c 9s3c 7d3h Ac7d Td6s Kc3c Tc2s Ah3d KdJh Qd4d 9h2s Ts3c 7d2c 8h7d Tc4d 8h2c Ah7s 8d6h Ac9c Jh3s 3d2c Jh2s TdTh 9c7s 5c4s Ad4d QhTs 9c7h Kc9d Kd6d Kh5s 8c7c 6s5s Ah6d 8d6d Ks7s Ac7c AdTd Ah9h Kc9s QhJh Ks4d As3s KsJc Jd5d 7d5s TdTs Ah2s 9h3s Th4s AsQc Ad3h Ks7h KhJs 8s4c 7s4s JhTc AsJd 6h3h Tc7h Ad7h 7c3s 8s3s 7d3s 8h4s Js9c Qd9d JsTs AhJh Jh6s 9s5h Jd9s 6h2h As7s QcTh 7s5h Kd4c 6s5d 9c8h Qd9c Js5c KhJh KdQd Qs4h Ad2s Ah2d QdQc QdTh 8s5h Js7d Tc5d 4h2c Ac3c AcJc Ad7c 7d5h 7h4c AcKs Jc5h Qd9h KdTs Kh3s Ad3d 4d4c 9h3d Ts8s 6h3s 7d2h 4d2d 6d5s KdKh 7s5d 6d6h 9d9s 9h2c Kh8c 5d3d As8d Ts9h Td2s Ks2h 9h8h 6s3d 9c8s Qs3s Th5h Jh6h AsTs Ad5s Kh4s 8c4h Qd6d Ts7c Kc7h KcTh Qs5c 4h3c QhJc 7d5c Ac5d 8c4s Th8h Jh8d 9d4c Qd2d Ac8h Kh6c QdJd JsTd Jc2c Ks9c Jc6h 9c8c Ts5h AhJs Ts4d 9s4h AdJc Js9s 4s3c Kd6s Ac5h 8h7h Td2c 7c2c Qc8s Ts7h 9c6h Td5c Ah5h 8d3c Qh7s

```

```
3c2c, 3d2c, 3h2c, 3s2c, 4c2c, 4d2c, 4h2c, 4s2c, 5c2c, 5d2c, 5h2c, 5s2c, 6c2c, 6d2c, 6h2c, 6s2c, 7c2c, 7d2c, 7h2c, 7s2c, 8c2c, 8d2c, 8h2c, 8s2c, 9c2c, 9d2c, 9h2c, 9s2c, Tc2c, Td2c, Th2c, Ts2c, Jc2c, Jd2c, Jh2c, Js2c, Qc2c, Qd2c, Qh2c, Qs2c, Kc2c, Kd2c, Kh2c, Ks2c, Ac2c, Ad2c, Ah2c, As2c, 2c2d, 3c2d, 3d2d, 3h2d, 3s2d, 4c2d, 4d2d, 4h2d, 4s2d, 5c2d, 5d2d, 5h2d, 5s2d, 6c2d, 6d2d, 6h2d, 6s2d, 7c2d, 7d2d, 7h2d, 7s2d, 8c2d, 8d2d, 8h2d, 8s2d, 9c2d, 9d2d, 9h2d, 9s2d, Tc2d, Td2d, Th2d, Ts2d, Jc2d, Jd2d, Jh2d, Js2d, Qc2d, Qd2d, Qh2d, Qs2d, Kc2d, Kd2d, Kh2d, Ks2d, Ac2d, Ad2d, Ah2d, As2d, 2c2h, 2d2h, 3c2h, 3d2h, 3h2h, 3s2h, 4c2h, 4d2h, 4h2h, 4s2h, 5c2h, 5d2h, 5h2h, 5s2h, 6c2h, 6d2h, 6h2h, 6s2h, 7c2h, 7d2h, 7h2h, 7s2h, 8c2h, 8d2h, 8h2h, 8s2h, 9c2h, 9d2h, 9h2h, 9s2h, Tc2h, Td2h, Th2h, Ts2h, Jc2h, Jd2h, Jh2h, Js2h, Qc2h, Qd2h, Qh2h, Qs2h, Kc2h, Kd2h, Kh2h, Ks2h, Ac2h, Ad2h, Ah2h, As2h, 2c2s, 2d2s, 2h2s, 3c2s, 3d2s, 3h2s, 3s2s, 4c2s, 4d2s, 4h2s, 4s2s, 5c2s, 5d2s, 5h2s, 5s2s, 6c2s, 6d2s, 6h2s, 6s2s, 7c2s, 7d2s, 7h2s, 7s2s, 8c2s, 8d2s, 8h2s, 8s2s, 9c2s, 9d2s, 9h2s, 9s2s, Tc2s, Td2s, Th2s, Ts2s, Jc2s, Jd2s, Jh2s, Js2s, Qc2s, Qd2s, Qh2s, Qs2s, Kc2s, Kd2s, Kh2s, Ks2s, Ac2s, Ad2s, Ah2s, As2s, 4c3c, 4d3c, 4h3c, 4s3c, 5c3c, 5d3c, 5h3c, 5s3c, 6c3c, 6d3c, 6h3c, 6s3c, 7c3c, 7d3c, 7h3c, 7s3c, 8c3c, 8d3c, 8h3c, 8s3c, 9c3c, 9d3c, 9h3c, 9s3c, Tc3c, Td3c, Th3c, Ts3c, Jc3c, Jd3c, Jh3c, Js3c, Qc3c, Qd3c, Qh3c, Qs3c, Kc3c, Kd3c, Kh3c, Ks3c, Ac3c, Ad3c, Ah3c, As3c, 3c3d, 4c3d, 4d3d, 4h3d, 4s3d, 5c3d, 5d3d, 5h3d, 5s3d, 6c3d, 6d3d, 6h3d, 6s3d, 7c3d, 7d3d, 7h3d, 7s3d, 8c3d, 8d3d, 8h3d, 8s3d, 9c3d, 9d3d, 9h3d, 9s3d, Tc3d, Td3d, Th3d, Ts3d, Jc3d, Jd3d, Jh3d, Js3d, Qc3d, Qd3d, Qh3d, Qs3d, Kc3d, Kd3d, Kh3d, Ks3d, Ac3d, Ad3d, Ah3d, As3d, 3c3h, 3d3h, 4c3h, 4d3h, 4h3h, 4s3h, 5c3h, 5d3h, 5h3h, 5s3h, 6c3h, 6d3h, 6h3h, 6s3h, 7c3h, 7d3h, 7h3h, 7s3h, 8c3h, 8d3h, 8h3h, 8s3h, 9c3h, 9d3h, 9h3h, 9s3h, Tc3h, Td3h, Th3h, Ts3h, Jc3h, Jd3h, Jh3h, Js3h, Qc3h, Qd3h, Qh3h, Qs3h, Kc3h, Kd3h, Kh3h, Ks3h, Ac3h, Ad3h, Ah3h, As3h, 3c3s, 3d3s, 3h3s, 4c3s, 4d3s, 4h3s, 4s3s, 5c3s, 5d3s, 5h3s, 5s3s, 6c3s, 6d3s, 6h3s, 6s3s, 7c3s, 7d3s, 7h3s, 7s3s, 8c3s, 8d3s, 8h3s, 8s3s, 9c3s, 9d3s, 9h3s, 9s3s, Tc3s, Td3s, Th3s, Ts3s, Jc3s, Jd3s, Jh3s, Js3s, Qc3s, Qd3s, Qh3s, Qs3s, Kc3s, Kd3s, Kh3s, Ks3s, Ac3s, Ad3s, Ah3s, As3s, 5c4c, 5d4c, 5h4c, 5s4c, 6c4c, 6d4c, 6h4c, 6s4c, 7c4c, 7d4c, 7h4c, 7s4c, 8c4c, 8d4c, 8h4c, 8s4c, 9c4c, 9d4c, 9h4c, 9s4c, Tc4c, Td4c, Th4c, Ts4c, Jc4c, Jd4c, Jh4c, Js4c, Qc4c, Qd4c, Qh4c, Qs4c, Kc4c, Kd4c, Kh4c, Ks4c, Ac4c, Ad4c, Ah4c, As4c, 4c4d, 5c4d, 5d4d, 5h4d, 5s4d, 6c4d, 6d4d, 6h4d, 6s4d, 7c4d, 7d4d, 7h4d, 7s4d, 8c4d, 8d4d, 8h4d, 8s4d, 9c4d, 9d4d, 9h4d, 9s4d, Tc4d, Td4d, Th4d, Ts4d, Jc4d, Jd4d, Jh4d, Js4d, Qc4d, Qd4d, Qh4d, Qs4d, Kc4d, Kd4d, Kh4d, Ks4d, Ac4d, Ad4d, Ah4d, As4d, 4c4h, 4d4h, 5c4h, 5d4h, 5h4h, 5s4h, 6c4h, 6d4h, 6h4h, 6s4h, 7c4h, 7d4h, 7h4h, 7s4h, 8c4h, 8d4h, 8h4h, 8s4h, 9c4h, 9d4h, 9h4h, 9s4h, Tc4h, Td4h, Th4h, Ts4h, Jc4h, Jd4h, Jh4h, Js4h, Qc4h, Qd4h, Qh4h, Qs4h, Kc4h, Kd4h, Kh4h, Ks4h, Ac4h, Ad4h, Ah4h, As4h, 4c4s, 4d4s, 4h4s, 5c4s, 5d4s, 5h4s, 5s4s, 6c4s, 6d4s, 6h4s, 6s4s, 7c4s, 7d4s, 7h4s, 7s4s, 8c4s, 8d4s, 8h4s, 8s4s, 9c4s, 9d4s, 9h4s, 9s4s, Tc4s, Td4s, Th4s, Ts4s, Jc4s, Jd4s, Jh4s, Js4s, Qc4s, Qd4s, Qh4s, Qs4s, Kc4s, Kd4s, Kh4s, Ks4s, Ac4s, Ad4s, Ah4s, As4s, 6c5c, 6d5c, 6h5c, 6s5c, 7c5c, 7d5c, 7h5c, 7s5c, 8c5c, 8d5c, 8h5c, 8s5c, 9c5c, 9d5c, 9h5c, 9s5c, Tc5c, Td5c, Th5c, Ts5c, Jc5c, Jd5c, Jh5c, Js5c, Qc5c, Qd5c, Qh5c, Qs5c, Kc5c, Kd5c, Kh5c, Ks5c, Ac5c, Ad5c, Ah5c, As5c, 5c5d, 6c5d, 6d5d, 6h5d, 6s5d, 7c5d, 7d5d, 7h5d, 7s5d, 8c5d, 8d5d, 8h5d, 8s5d, 9c5d, 9d5d, 9h5d, 9s5d, Tc5d, Td5d, Th5d, Ts5d, Jc5d, Jd5d, Jh5d, Js5d, Qc5d, Qd5d, Qh5d, Qs5d, Kc5d, Kd5d, Kh5d, Ks5d, Ac5d, Ad5d, Ah5d, As5d, 5c5h, 5d5h, 6c5h, 6d5h, 6h5h, 6s5h, 7c5h, 7d5h, 7h5h, 7s5h, 8c5h, 8d5h, 8h5h, 8s5h, 9c5h, 9d5h, 9h5h, 9s5h, Tc5h, Td5h, Th5h, Ts5h, Jc5h, Jd5h, Jh5h, Js5h, Qc5h, Qd5h, Qh5h, Qs5h, Kc5h, Kd5h, Kh5h, Ks5h, Ac5h, Ad5h, Ah5h, As5h, 5c5s, 5d5s, 5h5s, 6c5s, 6d5s, 6h5s, 6s5s, 7c5s, 7d5s, 7h5s, 7s5s, 8c5s, 8d5s, 8h5s, 8s5s, 9c5s, 9d5s, 9h5s, 9s5s, Tc5s, Td5s, Th5s, Ts5s, Jc5s, Jd5s, Jh5s, Js5s, Qc5s, Qd5s, Qh5s, Qs5s, Kc5s, Kd5s, Kh5s, Ks5s, Ac5s, Ad5s, Ah5s, As5s, 7c6c, 7d6c, 7h6c, 7s6c, 8c6c, 8d6c, 8h6c, 8s6c, 9c6c, 9d6c, 9h6c, 9s6c, Tc6c, Td6c, Th6c, Ts6c, Jc6c, Jd6c, Jh6c, Js6c, Qc6c, Qd6c, Qh6c, Qs6c, Kc6c, Kd6c, Kh6c, Ks6c, Ac6c, Ad6c, Ah6c, As6c, 6c6d, 7c6d, 7d6d, 7h6d, 7s6d, 8c6d, 8d6d, 8h6d, 8s6d, 9c6d, 9d6d, 9h6d, 9s6d, Tc6d, Td6d, Th6d, Ts6d, Jc6d, Jd6d, Jh6d, Js6d, Qc6d, Qd6d, Qh6d, Qs6d, Kc6d, Kd6d, Kh6d, Ks6d, Ac6d, Ad6d, Ah6d, As6d, 6c6h, 6d6h, 7c6h, 7d6h, 7h6h, 7s6h, 8c6h, 8d6h, 8h6h, 8s6h, 9c6h, 9d6h, 9h6h, 9s6h, Tc6h, Td6h, Th6h, Ts6h, Jc6h, Jd6h, Jh6h, Js6h, Qc6h, Qd6h, Qh6h, Qs6h, Kc6h, Kd6h, Kh6h, Ks6h, Ac6h, Ad6h, Ah6h, As6h, 6c6s, 6d6s, 6h6s, 7c6s, 7d6s, 7h6s, 7s6s, 8c6s, 8d6s, 8h6s, 8s6s, 9c6s, 9d6s, 9h6s, 9s6s, Tc6s, Td6s, Th6s, Ts6s, Jc6s, Jd6s, Jh6s, Js6s, Qc6s, Qd6s, Qh6s, Qs6s, Kc6s, Kd6s, Kh6s, Ks6s, Ac6s, Ad6s, Ah6s, As6s, 8c7c, 8d7c, 8h7c, 8s7c, 9c7c, 9d7c, 9h7c, 9s7c, Tc7c, Td7c, Th7c, Ts7c, Jc7c, Jd7c, Jh7c, Js7c, Qc7c, Qd7c, Qh7c, Qs7c, Kc7c, Kd7c, Kh7c, Ks7c, Ac7c, Ad7c, Ah7c, As7c, 7c7d, 8c7d, 8d7d, 8h7d, 8s7d, 9c7d, 9d7d, 9h7d, 9s7d, Tc7d, Td7d, Th7d, Ts7d, Jc7d, Jd7d, Jh7d, Js7d, Qc7d, Qd7d, Qh7d, Qs7d, Kc7d, Kd7d, Kh7d, Ks7d, Ac7d, Ad7d, Ah7d, As7d, 7c7h, 7d7h, 8c7h, 8d7h, 8h7h, 8s7h, 9c7h, 9d7h, 9h7h, 9s7h, Tc7h, Td7h, Th7h, Ts7h, Jc7h, Jd7h, Jh7h, Js7h, Qc7h, Qd7h, Qh7h, Qs7h, Kc7h, Kd7h, Kh7h, Ks7h, Ac7h, Ad7h, Ah7h, As7h, 7c7s, 7d7s, 7h7s, 8c7s, 8d7s, 8h7s, 8s7s, 9c7s, 9d7s, 9h7s, 9s7s, Tc7s, Td7s, Th7s, Ts7s, Jc7s, Jd7s, Jh7s, Js7s, Qc7s, Qd7s, Qh7s, Qs7s, Kc7s, Kd7s, Kh7s, Ks7s, Ac7s, Ad7s, Ah7s, As7s, 9c8c, 9d8c, 9h8c, 9s8c, Tc8c, Td8c, Th8c, Ts8c, Jc8c, Jd8c, Jh8c, Js8c, Qc8c, Qd8c, Qh8c, Qs8c, Kc8c, Kd8c, Kh8c, Ks8c, Ac8c, Ad8c, Ah8c, As8c, 8c8d, 9c8d, 9d8d, 9h8d, 9s8d, Tc8d, Td8d, Th8d, Ts8d, Jc8d, Jd8d, Jh8d, Js8d, Qc8d, Qd8d, Qh8d, Qs8d, Kc8d, Kd8d, Kh8d, Ks8d, Ac8d, Ad8d, Ah8d, As8d, 8c8h, 8d8h, 9c8h, 9d8h, 9h8h, 9s8h, Tc8h, Td8h, Th8h, Ts8h, Jc8h, Jd8h, Jh8h, Js8h, Qc8h, Qd8h, Qh8h, Qs8h, Kc8h, Kd8h, Kh8h, Ks8h, Ac8h, Ad8h, Ah8h, As8h, 8c8s, 8d8s, 8h8s, 9c8s, 9d8s, 9h8s, 9s8s, Tc8s, Td8s, Th8s, Ts8s, Jc8s, Jd8s, Jh8s, Js8s, Qc8s, Qd8s, Qh8s, Qs8s, Kc8s, Kd8s, Kh8s, Ks8s, Ac8s, Ad8s, Ah8s, As8s, Tc9c, Td9c, Th9c, Ts9c, Jc9c, Jd9c, Jh9c, Js9c, Qc9c, Qd9c, Qh9c, Qs9c, Kc9c, Kd9c, Kh9c, Ks9c, Ac9c, Ad9c, Ah9c, As9c, 9c9d, Tc9d, Td9d, Th9d, Ts9d, Jc9d, Jd9d, Jh9d, Js9d, Qc9d, Qd9d, Qh9d, Qs9d, Kc9d, Kd9d, Kh9d, Ks9d, Ac9d, Ad9d, Ah9d, As9d, 9c9h, 9d9h, Tc9h, Td9h, Th9h, Ts9h, Jc9h, Jd9h, Jh9h, Js9h, Qc9h, Qd9h, Qh9h, Qs9h, Kc9h, Kd9h, Kh9h, Ks9h, Ac9h, Ad9h, Ah9h, As9h, 9c9s, 9d9s, 9h9s, Tc9s, Td9s, Th9s, Ts9s, Jc9s, Jd9s, Jh9s, Js9s, Qc9s, Qd9s, Qh9s, Qs9s, Kc9s, Kd9s, Kh9s, Ks9s, Ac9s, Ad9s, Ah9s, As9s, JcTc, JdTc, JhTc, JsTc, QcTc, QdTc, QhTc, QsTc, KcTc, KdTc, KhTc, KsTc, AcTc, AdTc, AhTc, AsTc, TcTd, JcTd, JdTd, JhTd, JsTd, QcTd, QdTd, QhTd, QsTd, KcTd, KdTd, KhTd, KsTd, AcTd, AdTd, AhTd, AsTd, TcTh, TdTh, JcTh, JdTh, JhTh, JsTh, QcTh, QdTh, QhTh, QsTh, KcTh, KdTh, KhTh, KsTh, AcTh, AdTh, AhTh, AsTh, TcTs, TdTs, ThTs, JcTs, JdTs, JhTs, JsTs, QcTs, QdTs, QhTs, QsTs, KcTs, KdTs, KhTs, KsTs, AcTs, AdTs, AhTs, AsTs, QcJc, QdJc, QhJc, QsJc, KcJc, KdJc, KhJc, KsJc, AcJc, AdJc, AhJc, AsJc, JcJd, QcJd, QdJd, QhJd, QsJd, KcJd, KdJd, KhJd, KsJd, AcJd, AdJd, AhJd, AsJd, JcJh, JdJh, QcJh, QdJh, QhJh, QsJh, KcJh, KdJh, KhJh, KsJh, AcJh, AdJh, AhJh, AsJh, JcJs, JdJs, JhJs, QcJs, QdJs, QhJs, QsJs, KcJs, KdJs, KhJs, KsJs, AcJs, AdJs, AhJs, AsJs, KcQc, KdQc, KhQc, KsQc, AcQc, AdQc, AhQc, AsQc, QcQd, KcQd, KdQd, KhQd, KsQd, AcQd, AdQd, AhQd, AsQd, QcQh, QdQh, KcQh, KdQh, KhQh, KsQh, AcQh, AdQh, AhQh, AsQh, QcQs, QdQs, QhQs, KcQs, KdQs, KhQs, KsQs, AcQs, AdQs, AhQs, AsQs, AcKc, AdKc, AhKc, AsKc, KcKd, AcKd, AdKd, AhKd, AsKd, KcKh, KdKh, AcKh, AdKh, AhKh, AsKh, KcKs, KdKs, KhKs, AcKs, AdKs, AhKs, AsKs, AcAd, AcAh, AdAh, AcAs, AdAs, AhAs

```

To get things going, here is my embarrassingly easy to beat answer in python:

> ```
>     acs = []
>     ac = []
>     rs = 'AKQJT98765432'
>     for r in rs:
>         for s in 'schd':
>             ac.append(r+s)
>     for c in ac:
>         for i in ac:
>             if (i != c) and (rs.index(i[0]) <= rs.index(c[0]) and (i+c not in acs) and (c+i not in acs)):
>                 acs.append(i+c)
>     print(acs)
>
> ```

# Answer
> 4 votes
# Jelly, 21 bytes

```
9Ḋ;“TJQKA”Ṛp“cdhs”ŒcK

```

A full program printing the combos\* separated by spaces (as a niladic link without the trailing `K` the result would be a list of combos, where each combo is a list of lists, with integers for 2-9 and characters for other parts).

**Try it online!** (Note: change the trailing `K` to `L` and it will display the length of the list, `1326`.)

### How?

```
9Ḋ;“TJQKA”Ṛp“cdhs”ŒcK - Main link: no arguments
9Ḋ                    - nine dequeued               [2,3,4,5,6,7,8,9]
   “TJQKA”            - literal list of characters  ['T','J','Q','K','A']
  ;                   - concatenate                 [2,3,4,5,6,7,8,9,'T','J','Q','K','A']
          Ṛ           - reverse                     ['A','K','Q','J','T',9,8,7,6,5,4,3,2]
            “cdhs”    - literal list of characters  ['c','d','h','s']
           p          - Cartesian product           [['A','c'],['A','d'], ... ,[2,'s']]
                  Œc  - Unordered pairs             [[['A','c'],['A','d']], ...(1326)...]
                    K - join with spaces (to pretty print, otherwise they all run
                      -   together like AcAdAcAhAcAsAcKdAcKhAcKs...2d2h2d2s2h2s)

```

* it's what the kids call 'em!

# Answer
> 3 votes
# Python 2, ~~100~~ 98 bytes

```
r=range
d=lambda i:'AKQJT98765432'[i/4]+'cdhs'[i%4]
for u in r(52):
 for t in r(u):print d(t)+d(u)

```

-2 bytes from dylnan

Try it online!

`d` maps the numbers from 0 to 51 to card names such that they keep their sorting order (0-3 -\> Aces, 4-7 -\> Kings, etc)

The program loops over all pairs of numbers 0-51 where the second is greater than the first, and prints the pair of cards corresponding to that pair of numbers.

# Answer
> 1 votes
# Bash+sed, 90 bytes

```
printf %s\\n {{2..9},T,J,Q,K,A}{c,d,h,s}{{2..9},T,J,Q,K,A}{c,d,h,s}|sed '/\(..\)\1/,/As/d'

```

The Bash brace-expansion generates the cross-join of all pairs in ascending order (using the Bridge ordering of the suits). The Sed command removes the unwanted pairs: for each leading card C, we eliminate the same-card pair (C C) and all subsequent pairs (i.e. all trailing cards higher than C) until we see and remove the Ace of Spades (C As). After that, there's new leading card and we repeat until we finally remove AsAs and the input ends.

# Output

Piped through `rs 0 26` to make it fit better:

```
2d2c  2h2c  2h2d  2s2c  2s2d  2s2h  3c2c  3c2d  3c2h  3c2s  3d2c  3d2d  3d2h  3d2s  3d3c  3h2c  3h2d  3h2h  3h2s  3h3c  3h3d  3s2c  3s2d  3s2h  3s2s  3s3c
3s3d  3s3h  4c2c  4c2d  4c2h  4c2s  4c3c  4c3d  4c3h  4c3s  4d2c  4d2d  4d2h  4d2s  4d3c  4d3d  4d3h  4d3s  4d4c  4h2c  4h2d  4h2h  4h2s  4h3c  4h3d  4h3h
4h3s  4h4c  4h4d  4s2c  4s2d  4s2h  4s2s  4s3c  4s3d  4s3h  4s3s  4s4c  4s4d  4s4h  5c2c  5c2d  5c2h  5c2s  5c3c  5c3d  5c3h  5c3s  5c4c  5c4d  5c4h  5c4s
5d2c  5d2d  5d2h  5d2s  5d3c  5d3d  5d3h  5d3s  5d4c  5d4d  5d4h  5d4s  5d5c  5h2c  5h2d  5h2h  5h2s  5h3c  5h3d  5h3h  5h3s  5h4c  5h4d  5h4h  5h4s  5h5c
5h5d  5s2c  5s2d  5s2h  5s2s  5s3c  5s3d  5s3h  5s3s  5s4c  5s4d  5s4h  5s4s  5s5c  5s5d  5s5h  6c2c  6c2d  6c2h  6c2s  6c3c  6c3d  6c3h  6c3s  6c4c  6c4d
6c4h  6c4s  6c5c  6c5d  6c5h  6c5s  6d2c  6d2d  6d2h  6d2s  6d3c  6d3d  6d3h  6d3s  6d4c  6d4d  6d4h  6d4s  6d5c  6d5d  6d5h  6d5s  6d6c  6h2c  6h2d  6h2h
6h2s  6h3c  6h3d  6h3h  6h3s  6h4c  6h4d  6h4h  6h4s  6h5c  6h5d  6h5h  6h5s  6h6c  6h6d  6s2c  6s2d  6s2h  6s2s  6s3c  6s3d  6s3h  6s3s  6s4c  6s4d  6s4h
6s4s  6s5c  6s5d  6s5h  6s5s  6s6c  6s6d  6s6h  7c2c  7c2d  7c2h  7c2s  7c3c  7c3d  7c3h  7c3s  7c4c  7c4d  7c4h  7c4s  7c5c  7c5d  7c5h  7c5s  7c6c  7c6d
7c6h  7c6s  7d2c  7d2d  7d2h  7d2s  7d3c  7d3d  7d3h  7d3s  7d4c  7d4d  7d4h  7d4s  7d5c  7d5d  7d5h  7d5s  7d6c  7d6d  7d6h  7d6s  7d7c  7h2c  7h2d  7h2h
7h2s  7h3c  7h3d  7h3h  7h3s  7h4c  7h4d  7h4h  7h4s  7h5c  7h5d  7h5h  7h5s  7h6c  7h6d  7h6h  7h6s  7h7c  7h7d  7s2c  7s2d  7s2h  7s2s  7s3c  7s3d  7s3h
7s3s  7s4c  7s4d  7s4h  7s4s  7s5c  7s5d  7s5h  7s5s  7s6c  7s6d  7s6h  7s6s  7s7c  7s7d  7s7h  8c2c  8c2d  8c2h  8c2s  8c3c  8c3d  8c3h  8c3s  8c4c  8c4d
8c4h  8c4s  8c5c  8c5d  8c5h  8c5s  8c6c  8c6d  8c6h  8c6s  8c7c  8c7d  8c7h  8c7s  8d2c  8d2d  8d2h  8d2s  8d3c  8d3d  8d3h  8d3s  8d4c  8d4d  8d4h  8d4s
8d5c  8d5d  8d5h  8d5s  8d6c  8d6d  8d6h  8d6s  8d7c  8d7d  8d7h  8d7s  8d8c  8h2c  8h2d  8h2h  8h2s  8h3c  8h3d  8h3h  8h3s  8h4c  8h4d  8h4h  8h4s  8h5c
8h5d  8h5h  8h5s  8h6c  8h6d  8h6h  8h6s  8h7c  8h7d  8h7h  8h7s  8h8c  8h8d  8s2c  8s2d  8s2h  8s2s  8s3c  8s3d  8s3h  8s3s  8s4c  8s4d  8s4h  8s4s  8s5c
8s5d  8s5h  8s5s  8s6c  8s6d  8s6h  8s6s  8s7c  8s7d  8s7h  8s7s  8s8c  8s8d  8s8h  9c2c  9c2d  9c2h  9c2s  9c3c  9c3d  9c3h  9c3s  9c4c  9c4d  9c4h  9c4s
9c5c  9c5d  9c5h  9c5s  9c6c  9c6d  9c6h  9c6s  9c7c  9c7d  9c7h  9c7s  9c8c  9c8d  9c8h  9c8s  9d2c  9d2d  9d2h  9d2s  9d3c  9d3d  9d3h  9d3s  9d4c  9d4d
9d4h  9d4s  9d5c  9d5d  9d5h  9d5s  9d6c  9d6d  9d6h  9d6s  9d7c  9d7d  9d7h  9d7s  9d8c  9d8d  9d8h  9d8s  9d9c  9h2c  9h2d  9h2h  9h2s  9h3c  9h3d  9h3h
9h3s  9h4c  9h4d  9h4h  9h4s  9h5c  9h5d  9h5h  9h5s  9h6c  9h6d  9h6h  9h6s  9h7c  9h7d  9h7h  9h7s  9h8c  9h8d  9h8h  9h8s  9h9c  9h9d  9s2c  9s2d  9s2h
9s2s  9s3c  9s3d  9s3h  9s3s  9s4c  9s4d  9s4h  9s4s  9s5c  9s5d  9s5h  9s5s  9s6c  9s6d  9s6h  9s6s  9s7c  9s7d  9s7h  9s7s  9s8c  9s8d  9s8h  9s8s  9s9c
9s9d  9s9h  Tc2c  Tc2d  Tc2h  Tc2s  Tc3c  Tc3d  Tc3h  Tc3s  Tc4c  Tc4d  Tc4h  Tc4s  Tc5c  Tc5d  Tc5h  Tc5s  Tc6c  Tc6d  Tc6h  Tc6s  Tc7c  Tc7d  Tc7h  Tc7s
Tc8c  Tc8d  Tc8h  Tc8s  Tc9c  Tc9d  Tc9h  Tc9s  Td2c  Td2d  Td2h  Td2s  Td3c  Td3d  Td3h  Td3s  Td4c  Td4d  Td4h  Td4s  Td5c  Td5d  Td5h  Td5s  Td6c  Td6d
Td6h  Td6s  Td7c  Td7d  Td7h  Td7s  Td8c  Td8d  Td8h  Td8s  Td9c  Td9d  Td9h  Td9s  TdTc  Th2c  Th2d  Th2h  Th2s  Th3c  Th3d  Th3h  Th3s  Th4c  Th4d  Th4h
Th4s  Th5c  Th5d  Th5h  Th5s  Th6c  Th6d  Th6h  Th6s  Th7c  Th7d  Th7h  Th7s  Th8c  Th8d  Th8h  Th8s  Th9c  Th9d  Th9h  Th9s  ThTc  ThTd  Ts2c  Ts2d  Ts2h
Ts2s  Ts3c  Ts3d  Ts3h  Ts3s  Ts4c  Ts4d  Ts4h  Ts4s  Ts5c  Ts5d  Ts5h  Ts5s  Ts6c  Ts6d  Ts6h  Ts6s  Ts7c  Ts7d  Ts7h  Ts7s  Ts8c  Ts8d  Ts8h  Ts8s  Ts9c
Ts9d  Ts9h  Ts9s  TsTc  TsTd  TsTh  Jc2c  Jc2d  Jc2h  Jc2s  Jc3c  Jc3d  Jc3h  Jc3s  Jc4c  Jc4d  Jc4h  Jc4s  Jc5c  Jc5d  Jc5h  Jc5s  Jc6c  Jc6d  Jc6h  Jc6s
Jc7c  Jc7d  Jc7h  Jc7s  Jc8c  Jc8d  Jc8h  Jc8s  Jc9c  Jc9d  Jc9h  Jc9s  JcTc  JcTd  JcTh  JcTs  Jd2c  Jd2d  Jd2h  Jd2s  Jd3c  Jd3d  Jd3h  Jd3s  Jd4c  Jd4d
Jd4h  Jd4s  Jd5c  Jd5d  Jd5h  Jd5s  Jd6c  Jd6d  Jd6h  Jd6s  Jd7c  Jd7d  Jd7h  Jd7s  Jd8c  Jd8d  Jd8h  Jd8s  Jd9c  Jd9d  Jd9h  Jd9s  JdTc  JdTd  JdTh  JdTs
JdJc  Jh2c  Jh2d  Jh2h  Jh2s  Jh3c  Jh3d  Jh3h  Jh3s  Jh4c  Jh4d  Jh4h  Jh4s  Jh5c  Jh5d  Jh5h  Jh5s  Jh6c  Jh6d  Jh6h  Jh6s  Jh7c  Jh7d  Jh7h  Jh7s  Jh8c
Jh8d  Jh8h  Jh8s  Jh9c  Jh9d  Jh9h  Jh9s  JhTc  JhTd  JhTh  JhTs  JhJc  JhJd  Js2c  Js2d  Js2h  Js2s  Js3c  Js3d  Js3h  Js3s  Js4c  Js4d  Js4h  Js4s  Js5c
Js5d  Js5h  Js5s  Js6c  Js6d  Js6h  Js6s  Js7c  Js7d  Js7h  Js7s  Js8c  Js8d  Js8h  Js8s  Js9c  Js9d  Js9h  Js9s  JsTc  JsTd  JsTh  JsTs  JsJc  JsJd  JsJh
Qc2c  Qc2d  Qc2h  Qc2s  Qc3c  Qc3d  Qc3h  Qc3s  Qc4c  Qc4d  Qc4h  Qc4s  Qc5c  Qc5d  Qc5h  Qc5s  Qc6c  Qc6d  Qc6h  Qc6s  Qc7c  Qc7d  Qc7h  Qc7s  Qc8c  Qc8d
Qc8h  Qc8s  Qc9c  Qc9d  Qc9h  Qc9s  QcTc  QcTd  QcTh  QcTs  QcJc  QcJd  QcJh  QcJs  Qd2c  Qd2d  Qd2h  Qd2s  Qd3c  Qd3d  Qd3h  Qd3s  Qd4c  Qd4d  Qd4h  Qd4s
Qd5c  Qd5d  Qd5h  Qd5s  Qd6c  Qd6d  Qd6h  Qd6s  Qd7c  Qd7d  Qd7h  Qd7s  Qd8c  Qd8d  Qd8h  Qd8s  Qd9c  Qd9d  Qd9h  Qd9s  QdTc  QdTd  QdTh  QdTs  QdJc  QdJd
QdJh  QdJs  QdQc  Qh2c  Qh2d  Qh2h  Qh2s  Qh3c  Qh3d  Qh3h  Qh3s  Qh4c  Qh4d  Qh4h  Qh4s  Qh5c  Qh5d  Qh5h  Qh5s  Qh6c  Qh6d  Qh6h  Qh6s  Qh7c  Qh7d  Qh7h
Qh7s  Qh8c  Qh8d  Qh8h  Qh8s  Qh9c  Qh9d  Qh9h  Qh9s  QhTc  QhTd  QhTh  QhTs  QhJc  QhJd  QhJh  QhJs  QhQc  QhQd  Qs2c  Qs2d  Qs2h  Qs2s  Qs3c  Qs3d  Qs3h
Qs3s  Qs4c  Qs4d  Qs4h  Qs4s  Qs5c  Qs5d  Qs5h  Qs5s  Qs6c  Qs6d  Qs6h  Qs6s  Qs7c  Qs7d  Qs7h  Qs7s  Qs8c  Qs8d  Qs8h  Qs8s  Qs9c  Qs9d  Qs9h  Qs9s  QsTc
QsTd  QsTh  QsTs  QsJc  QsJd  QsJh  QsJs  QsQc  QsQd  QsQh  Kc2c  Kc2d  Kc2h  Kc2s  Kc3c  Kc3d  Kc3h  Kc3s  Kc4c  Kc4d  Kc4h  Kc4s  Kc5c  Kc5d  Kc5h  Kc5s
Kc6c  Kc6d  Kc6h  Kc6s  Kc7c  Kc7d  Kc7h  Kc7s  Kc8c  Kc8d  Kc8h  Kc8s  Kc9c  Kc9d  Kc9h  Kc9s  KcTc  KcTd  KcTh  KcTs  KcJc  KcJd  KcJh  KcJs  KcQc  KcQd
KcQh  KcQs  Kd2c  Kd2d  Kd2h  Kd2s  Kd3c  Kd3d  Kd3h  Kd3s  Kd4c  Kd4d  Kd4h  Kd4s  Kd5c  Kd5d  Kd5h  Kd5s  Kd6c  Kd6d  Kd6h  Kd6s  Kd7c  Kd7d  Kd7h  Kd7s
Kd8c  Kd8d  Kd8h  Kd8s  Kd9c  Kd9d  Kd9h  Kd9s  KdTc  KdTd  KdTh  KdTs  KdJc  KdJd  KdJh  KdJs  KdQc  KdQd  KdQh  KdQs  KdKc  Kh2c  Kh2d  Kh2h  Kh2s  Kh3c
Kh3d  Kh3h  Kh3s  Kh4c  Kh4d  Kh4h  Kh4s  Kh5c  Kh5d  Kh5h  Kh5s  Kh6c  Kh6d  Kh6h  Kh6s  Kh7c  Kh7d  Kh7h  Kh7s  Kh8c  Kh8d  Kh8h  Kh8s  Kh9c  Kh9d  Kh9h
Kh9s  KhTc  KhTd  KhTh  KhTs  KhJc  KhJd  KhJh  KhJs  KhQc  KhQd  KhQh  KhQs  KhKc  KhKd  Ks2c  Ks2d  Ks2h  Ks2s  Ks3c  Ks3d  Ks3h  Ks3s  Ks4c  Ks4d  Ks4h
Ks4s  Ks5c  Ks5d  Ks5h  Ks5s  Ks6c  Ks6d  Ks6h  Ks6s  Ks7c  Ks7d  Ks7h  Ks7s  Ks8c  Ks8d  Ks8h  Ks8s  Ks9c  Ks9d  Ks9h  Ks9s  KsTc  KsTd  KsTh  KsTs  KsJc
KsJd  KsJh  KsJs  KsQc  KsQd  KsQh  KsQs  KsKc  KsKd  KsKh  Ac2c  Ac2d  Ac2h  Ac2s  Ac3c  Ac3d  Ac3h  Ac3s  Ac4c  Ac4d  Ac4h  Ac4s  Ac5c  Ac5d  Ac5h  Ac5s
Ac6c  Ac6d  Ac6h  Ac6s  Ac7c  Ac7d  Ac7h  Ac7s  Ac8c  Ac8d  Ac8h  Ac8s  Ac9c  Ac9d  Ac9h  Ac9s  AcTc  AcTd  AcTh  AcTs  AcJc  AcJd  AcJh  AcJs  AcQc  AcQd
AcQh  AcQs  AcKc  AcKd  AcKh  AcKs  Ad2c  Ad2d  Ad2h  Ad2s  Ad3c  Ad3d  Ad3h  Ad3s  Ad4c  Ad4d  Ad4h  Ad4s  Ad5c  Ad5d  Ad5h  Ad5s  Ad6c  Ad6d  Ad6h  Ad6s
Ad7c  Ad7d  Ad7h  Ad7s  Ad8c  Ad8d  Ad8h  Ad8s  Ad9c  Ad9d  Ad9h  Ad9s  AdTc  AdTd  AdTh  AdTs  AdJc  AdJd  AdJh  AdJs  AdQc  AdQd  AdQh  AdQs  AdKc  AdKd
AdKh  AdKs  AdAc  Ah2c  Ah2d  Ah2h  Ah2s  Ah3c  Ah3d  Ah3h  Ah3s  Ah4c  Ah4d  Ah4h  Ah4s  Ah5c  Ah5d  Ah5h  Ah5s  Ah6c  Ah6d  Ah6h  Ah6s  Ah7c  Ah7d  Ah7h
Ah7s  Ah8c  Ah8d  Ah8h  Ah8s  Ah9c  Ah9d  Ah9h  Ah9s  AhTc  AhTd  AhTh  AhTs  AhJc  AhJd  AhJh  AhJs  AhQc  AhQd  AhQh  AhQs  AhKc  AhKd  AhKh  AhKs  AhAc
AhAd  As2c  As2d  As2h  As2s  As3c  As3d  As3h  As3s  As4c  As4d  As4h  As4s  As5c  As5d  As5h  As5s  As6c  As6d  As6h  As6s  As7c  As7d  As7h  As7s  As8c
As8d  As8h  As8s  As9c  As9d  As9h  As9s  AsTc  AsTd  AsTh  AsTs  AsJc  AsJd  AsJh  AsJs  AsQc  AsQd  AsQh  AsQs  AsKc  AsKd  AsKh  AsKs  AsAc  AsAd  AsAh

```

# Answer
> 1 votes
# Perl 5, 73 bytes

```
@,=map{/./;map$&.$_,c,d,h,'s'}2..9,T,J,Q,K,A;map{say$i,$_}@,while$i=pop@,

```

Try it online!

---
Tags: code-golf, kolmogorov-complexity, game, card-games
---


title: Take one to make one

text:
# Question
Title: Take one to make one
# Challenge

Given a list of positive integers, find if there exists a permutation where taking up to one bit from each of the integers, a binary number consisting of all `1`s can be created.

The number of bits in the resulting binary number is equal to the highest MSB in the list of integers.

# Output

Your code must output or return a truthy/falsey value indicating if such a permutation exists.

# Examples

**Truthy:**

With the list `[4, 5, 2]`, and its binary representation `[100, 101, 10]`, we can use the third, first, and second bits, respectively, to create `111`:

```
4  ->  100  ->  1~~0~~~~0~~  ->  1
5  ->  101  ->  ~~1~~~~0~~1  ->    1
2  ->  010  ->  ~~0~~1~~0~~  ->   1
Result                   111

```

With the list `[3, 3, 3]`, all of the numbers have both first and second bits set as `1`, so we can take our pick with a number to spare:

```
3  ->  11  ->  1~~1~~  ->  1
3  ->  11  ->  ~~1~~1  ->   1
3  ->  11  ->  ~~11~~  ->
Result                 11

```

**Falsey:**

With the list `[4, 6, 2]`, none of the numbers have the first bit set as `1`, so the binary number cannot be created:

```
4  ->  100
6  ->  110
2  ->  010

```

With the list `[1, 7, 1]`, only one of the numbers has the second and third bits set as `1`, and the number cannot be created:

```
1  ->  001
7  ->  111
1  ->  001

```

Obviously, if the maximum number of set bits exceeds the number of integers, the result number can never be created.

# Test cases

**Truthy:**

```
[1]
[1, 2]
[3, 3]
[3, 3, 3]
[4, 5, 2]
[1, 1, 1, 1]
[15, 15, 15, 15]
[52, 114, 61, 19, 73, 54, 83, 29]
[231, 92, 39, 210, 187, 101, 78, 39]

```

**Falsey:**

```
[2]
[2, 2]
[4, 6, 2]
[1, 7, 1]
[15, 15, 15]
[1, 15, 3, 1]
[13, 83, 86, 29, 8, 87, 26, 21]
[154, 19, 141, 28, 27, 6, 18, 137]

```

# Rules

Standard loopholes are forbidden. As this is , shortest entry wins!

# Answer
# Jelly, 11 bytes

```
BUT€ŒpṬz0PẸ

```

Try it online!

### How it works

```
BUT€ŒpṬz0PẸ  Main link. Argument: A (array)

             Example: A = [4, 5, 2]
B            Binary; convert each n in A to base 2.
                      [[1, 0, 0], [1, 0, 1], [1, 0]]
 U           Upend; reverse all arrays of binary digits.
                      [[0, 0, 1], [1, 0, 1], [0, 1]]
  T€         Truth each; for each binary array, get all indices of 1's.
                      [[3], [1, 3], [2]]
    Œp       Take the Cartesian product of all index arrays.
                      [[3, 1, 2], [3, 3, 2]
      Ṭ      Untruth; map each index array to a binary arrays with 1's at
             at the specified indices.
                      [[1, 1, 1], [0, 1, 1]]
       z0    Zip/transpose the resulting 2D array, filling shorter rows with 0's.
                      [[1, 0], [1, 1], [1, 1]]
         P   Take the columnwise product.
                      [1, 0]
          Ẹ  Any; yield 1 if any of the products is non-zero, 0 otherwise.
                      1

```
> 8 votes

# Answer
# , 30 bytes

All credit goes to my colleague Marshall.

Unnamed tacit prefix function.

```
[:+./ .*(1->./@${.|:)^:2@|:@#:

```

Try it online!

(`@` is function composition)

`#:` antibase-2

`|:` transpose

`(``)^:2` apply the following function twice:

`1-` Boolean negate

`>./` the maximum

`@` of the

`$` axis lengths

`{.` take (padding with zeros) from

`|:` the transposed argument

`+./ .*`"crazy determinant magic"*

`[:` don't hook (no-op – serves to compose the previous part with the rest)

---

* In Marshall's words.
> 7 votes

# Answer
# JavaScript (ES6), ~~104~~ ... ~~93~~ 83 bytes

Returns `0` or `1`.

```
f=(a,m=Math.max(...a),s=1)=>s>m|a.some((n,i)=>n&s&&f(b=[...a],m,s*2,b.splice(i,1)))

```

### Test cases

```
f=(a,m=Math.max(...a),s=1)=>s>m|a.some((n,i)=>n&s&&f(b=[...a],m,s*2,b.splice(i,1)))

console.log('Truthy')
console.log(f([1]))
console.log(f([1, 2]))
console.log(f([3, 3]))
console.log(f([3, 3, 3]))
console.log(f([4, 5, 2]))
console.log(f([1, 1, 1, 1]))
console.log(f([15, 15, 15, 15]))
console.log(f([52, 114, 61, 19, 73, 54, 83, 29]))
console.log(f([231, 92, 39, 210, 187, 101, 78, 39]))

console.log('Falsy')
console.log(f([2]))
console.log(f([2, 2]))
console.log(f([4, 6, 2]))
console.log(f([1, 7, 1]))
console.log(f([15, 15, 15]))
console.log(f([1, 15, 3, 1]))
console.log(f([13, 83, 86, 29, 8, 87, 26, 21]))
console.log(f([154, 19, 141, 28, 27, 6, 18, 137]))
```

### Method

Given the input array **A = \[a0, a1, ..., aN-1\]**, we look for a permutation **\[ap\[0\], ap\[1\], ..., ap\[N-1\]\]** of **A** and an integer **x ≤ N** such that:

* **s = 1 + (ap\[0\] AND 20) + (ap\[1\] AND 21) + ... + (ap\[x-1\] AND 2x-1) = 2x**
* and **s** is greater than the greatest element **m** of **A**

### Formatted and commented

```
f = (                 // f = recursive function taking:
  a,                  //   - a = array
  m = Math.max(...a), //   - m = greatest element in a
  s = 1               //   - s = current power of 2, starting at 1
) =>                  //
  s > m               // success condition (see above) which is
  |                   // OR'd with the result of this some():
  a.some((n, i) =>    // for each element n at position i in a:
    n & s &&          //   provided that the expected bit is set in n,
    f(                //   do a recursive call with:
      b = [...a],     //     b = copy of a
      m,              //     m unchanged
      s * 2,          //     s = next power of 2
      b.splice(i, 1)  //     the current element removed from b
    )                 //   end of recursive call
  )                   // end of some()

```
> 6 votes

# Answer
# 05AB1E, ~~23~~ ~~22~~ 20 bytes

*-1 byte thanks to Mr.Xcoder*

True: 1, False: 0

```
2вí0ζœεvyƶNè})DgLQ}Z

```

Try it online!

**Explanations:**

```
2вí0ζœεvyƶNè})DgLQ}Z   Full program (implicit input, e.g. [4, 6, 2])
2в                     Convert each to binary ([1,0,0], [1,1,0], [1,0])
  í                    Reverse each ([0,0,1], [0,1,1], [0,1])
   0ζ                  Zip with 0 as a filler ([0,0,0],[0,1,1],[1,1,0])
     œ                 Get all sublists permutations
      ε           }    Apply on each permutation...
       vyƶNè}            For each sublist...
        yƶ                  Multiply each element by its index
          Nè                Get the element at position == sublist index
             )           Wrap the result in a list
              DgLQ       1 if equal to [1,2,...,length of item]
                   Z   Get max item of the list (1 if at least 1 permutations fill the conditions)
                       -- implicit output

```
> 4 votes

# Answer
# Husk, 14 bytes

```
SöV≡ŀToṁ∂Pmo↔ḋ

```

Try it online!

## Explanation

```
SöV≡ŀToṁ∂Pmo↔ḋ  Implicit input, say [4,5,2].
          m  ḋ  Convert each to binary
           o↔   and reverse them: x = [[0,0,1],[1,0,1],[0,1]]
         P      Take all permutations of x
      oṁ∂       and enumerate their anti-diagonals in y = [[0],[0,1],[1,0,0],[1,1],[1]..
S    T          Transpose x: [[0,1,0],[0,0,1],[1,1]]
    ŀ           Take the range up to its length: z = [1,2,3]
                Then z is as long as the longest list in x.
 öV             Return the 1-based index of the first element of y
   ≡            that has the same length and same distribution of truthy values as z,
                i.e. is [1,1,1]. If one doesn't exist, return 0.

```
> 4 votes

# Answer
# PHP, ~~255~~ ~~243~~ 160 bytes

-12 bytes, took out the sorting
-83 bytes (!) thanks to Titus

```
<?function f($a,$v=NULL,$b=[]){($v=$v??(1<<log(max($a),2)+1)-1)||die("1");if($p=array_pop($a))while($p-=$i)($b[$i=1<<log($p,2)]|$v<$i)||f($a,$v-$i,[$i=>1]+$b);}

```

Try it online!

Prints 1 for truthy, nothing for falsey.

Original version ungolfed:

```
<?php
unset($argv[0]);                                                   // remove filename from arguments
$max = pow(2,floor(log(max($argv),2))+1)-1;                        // get target number (all bits set to 1)
solve($argv,$max,[]);
function solve($array,$value,$bits){
  if(!$value){                                                     // if we've reached our target number (actually subtracted it to zero)
    die("1");                                                      // print truthy
  }
  if(count($array)){                                               // while there are arguments left to check
    $popped = array_pop($array);                                   // get the largest argument
    while($popped > 0 && ($mybit = pow(2,floor(log($popped,2))))){ // while the argument hasn't reached zero, get the highest power of 2 possible
      $popped -= $mybit;                                           // subtract power from argument
      if($value >= $mybit && !$bits[$i]){                          // if this bit can be subtracted from our argument, and we haven't used this bit yet
        $copy = $bits;                                             // create a copy to pass to the function
        $copy[$mybit] = 1;                                         // mark the bit as used in the copy
        solve($array,$value-$mybit,$copy);                         // recurse
      }
    }
  }
}

```
> 3 votes

# Answer
## Wolfram Language (Mathematica), 65 bytes

```
Max[Tr/@Permutations[n=PadLeft[#~IntegerDigits~2]]]==Tr[1^#&@@n]&

```

Try it online!

### Explanation

```
#~IntegerDigits~2

```

We start by converting all inputs to binary lists.

```
n=PadLeft[...]

```

Then we pad all those lists with zeros to the left to make the array rectangular. The result is stored in `n` for later.

```
Permutations[...]

```

Yay, brute force, let's get all possible permutations of the input.

```
Tr/@...

```

This gets the trace for each permutation, i.e. the sum of the diagonal elements in the permutation. In other words, we add up the MSB from the first number, the next-to-MSB from the second number and so on. If the permutation is valid, all of these will be **1** and there will be as many **1**s as the largest input number is wide.

```
Max[...]

```

We get the maximum trace, because the trace can never be *more* than that of a valid permutation.

```
...==Tr[1^#&@@n]

```

The right-hand side is just a golfy version of `Length @ First @ n`, i.e. it gets the width of the rectangular array, and therefore the width of the largest input number. We want to make sure that the trace of some permutation is equal to this.
> 3 votes

# Answer
# Lua 5.2, 85 bytes

```
m=math
x=function(...)print(bit32.bor(...)==2^(m.floor(m.log(m.max(...),2))+1)-1)end

```

This sets x to be a function that accepts a variable number of inputs (expected to be 32 bit integers), and prints to stdout either "true" or "false".

Usage:

```
x(13, 83, 86, 29, 8, 87, 26, 21) -- Prints "false"

```
> 2 votes

# Answer
# PHP, 121 bytes

```
function f($a,$s=0){($v=array_pop($a))||(0|$g=log($s+1,2))-$g||die("1");for($b=.5;$v<=$b*=2;)$v&$b&&~$s&$b&&f($a,$s|$b);}

```

Try it online.

**breakdown**

```
function f($a,$s=0)
{
    ($v=array_pop($a))          # pop element from array
    ||                          # if nothing could be popped (empty array)
    (0|$g=log($s+1,2))-$g       # and $s+1 is a power of 2
        ||die("1");                 # then print "1" and exit
    for($b=.5;$v>=$b*=2;)       # loop through the bits:
        $v&$b                       # if bit is set in $v
        &&~$s&$b                    # and not set in $s
            &&f($a,$s|$b);              # then set bit in $s and recurse
}

```
> 2 votes

# Answer
# , 49 bytes

```
g=.3 :'*+/*/"1+/"2((#y){.=i.{:$#:y)*"2#:(i.!#y)A.,y'

```

Do I need to count also the 'g=.'? I'm ready to add it.

A long explicit verb this time. I tried a tacit one for the same algorithm, but it turned out to be even longer and uglier than this. Far away from Adám's solution.

Explanation: (y is the right argument of the function)

```
                                             ,y - adds a leading axis to the argument
                                             (if it's scalar becomes an array of length 1)
                                          .A    - finds the permutations according to the left argument
                                   (i.!#y)      - factorial of the length of the argument, for all permutations
                                 #:             - convert each element to binary
                             *"2                - multiply each cell by identity matrix
           (                )                   - group
                   =i.{:$#:y                    - identity matrix with size the length
                                                  of the binary representation of the argument
             (#y){.                             - takes as many rows from the identity matrix
                                                  as the size of the list (pad with 0 if neded)
    */"1+/"2                                    - sums the rows and multiplies the items
                                                  to check if forms an identity matrix
 *+/                                            - add the results from all permutations and
                                                  returns 1 in equal or greater then 1

```

Try it online!
> 2 votes

# Answer
# Python 3, 126 120 bytes

Saved 6 bytes due to Mr. Xcoder

```
lambda x:g(x,max(map(len,map(bin,x)))-3)
g=lambda x,n:n<0 or any(g(x[:i]+x[i+1:],n-1)for i in range(len(x))if x[i]&2**n)

```

Try it online!
> 1 votes

# Answer
# Jelly, 17 bytes

```
BUz0×J$€ŒpṢ=JPƲ€Ẹ

```

**Test suite.**
> 1 votes

# Answer
# Jelly, 17 bytes

```
BUz0Œ!ŒD€Ẏ
ṀBo1eÇ

```

A monadic link taking a list of numbers and returning `1` (truthy) or `0` (falsey).

**Try it online!**

This will time out on TIO for the longest of each of the test cases.

### How?

```
BUz0Œ!ŒD€Ẏ - Link 1, possibilities (plus some shorter ones & duplicates): list of numbers
                                     e.g. [4, 5, 2]
B          - to binary list (vectorises)  [[1,0,0],[1,0,1],[1,0]]
 U         - upend                        [[0,0,1],[1,0,1],[0,1]]
   0       - literal zero                  0
  z        - transpose with filler        [[0,1,0],[0,0,1],[1,1,0]]
    Œ!     - all permutations             [[[0,1,0],[0,0,1],[1,1,0]],[[0,1,0],[1,1,0],[0,0,1]],[[0,0,1],[0,1,0],[1,1,0]],[[0,0,1],[1,1,0],[0,1,0]],[[1,1,0],[0,1,0],[0,0,1]],[[1,1,0],[0,0,1],[0,1,0]]]
      ŒD€  - diagonals of €ach            [[[0,0,0],[1,1],[0],[1],[0,1]],[[0,1,1],[1,0],[0],[0],[1,0]],[[0,1,0],[0,0],[1],[1],[0,1]],[[0,1,0],[0,0],[1],[0],[1,1]],[[1,1,1],[1,0],[0],[0],[0,0]],[[1,0,0],[1,1],[0],[0],[0,1]]]
         Ẏ - tighten                      [[0,0,0],[1,1],[0],[1],[0,1],[0,1,1],[1,0],[0],[0],[1,0],[0,1,0],[0,0],[1],[1],[0,1],[0,1,0],[0,0],[1],[0],[1,1],[1,1,1],[1,0],[0],[0],[0,0],[1,0,0],[1,1],[0],[0],[0,1]]

ṀBo1eÇ - Main link: list of numbers  e.g. [4, 5, 2]
Ṁ      - maximum                           5
 B     - to binary list                   [1,0,1]
   1   - literal one                       1
  o    - or (vectorises)                  [1,1,1]
     Ç - last link as a monad             [[0,0,0],[1,1],[0],[1],[0,1],[0,1,1],[1,0],[0],[0],[1,0],[0,1,0],[0,0],[1],[1],[0,1],[0,1,0],[0,0],[1],[0],[1,1],[1,1,1],[1,0],[0],[0],[0,0],[1,0,0],[1,1],[0],[0],[0,1]]
    e  - exists in?                        1    --------------------------------------------------------------------------------------------------------------^

```
> 1 votes

# Answer
# , ~~247 bytes~~ 221 bytes

```
function(i){a=do.call(rbind,Map(`==`,Map(intToBits,i),1));n=max(unlist(apply(a,1,which)));any(unlist(g(a[,1:n,drop=F],n)))}
g=function(a,p){if(p==1)return(any(a[,1]));Map(function(x){g(a[x,,drop=F],p-1)},which(a[,p])*-1)}

```

Try it online!

Ungolfed version

```
f=function(i){                                   #anonymous function when golfed
  a=do.call(rbind,Map(`==`,Map(intToBits,i),1))  #convert integers to binary, then logical
                                                 #bind results together in matrix
  n=max(unlist(apply(a,1,which)))                #determine max number of bits
  any(unlist(g(a[,1:n,drop=F],n)))               #apply recursive function
}

g=function(a,p){
  if(p==1)return(any(a[,1]))                   #check if first bit is available still
  Map(function(x){g(a[x,,drop=F],p-1)},which(a[,p])*-1) #strip row used for current bit
                                                        #and apply the function recursively
}

```

I realized the no-row check was unnecessary with the `drop=F` arguments. Also removed some pesky whitespace.
> 1 votes

# Answer
# PHP, 152 bytes

```
<?function b($a,$b,$s){$a[$s]=0;$r=$b-1;foreach($a as$i=>$v)if($v&1<<$b)$r=max(b($a,$b+1,$i),$r);return$r;}$g=$argv;$g[0]=0;echo!(max($g)>>b($g,0,0)+1);

```

Prints nothing for false, 1 for true.

Ungolfed:

```
<?

// Search an array for a value having a bit set at the given bit index.
// For each match, search for a next higher bit index excluding the current match.
// This way it "climbs up" bit by a bit, finally returning the highest bit index reached.
function bitSearch($valArr, $bitInd, $skipInd) {
    unset($valArr[$skipInd]);
    $result = $bitInd - 1;
    foreach ($valArr as $ind => $v) {
        if ($v & (1 << $bitInd)) {
            $result = max(bitSearch($valArr, $bitInd + 1, $ind), $result);
        }
    }
    return $result;
}

$argv[0] = 0;
$r = bitSearch($argv, 0, 0);
// Check if the highest bit index reached was highest in the largest value given.
if (max($argv) >> ($r + 1)) {
    echo("False\n");
} else {
    echo("True\n");
}

```
> 1 votes

# Answer
# C , 79 bytes

```
b,i;main(a){for(;~scanf("%d",&a);i++)b|=a;puts("false\0true"+(b==(1<<i)-1)*6);}

```
> 0 votes

---
Tags: code-golf, integer, binary
---


title: Transmit Pi... precisely

text:
# Question
Title: Transmit Pi... precisely
Following on from Monte Carlo estimator of Pi this challenge is to produce the shortest code for the constant Pi. Except here your code must output consecutive digits of pi forever.

This is code golf, so the shortest submission (in bytes) wins except that it must output the first 10,000 digits in less than 10 seconds on a reasonable PC and it must never terminate.

You can't use any built-in for Pi or trig functions.

---

Removed the hard limit on code size.

# Answer
> 7 votes
# CJam - 48

```
3.1o{1YAZ2*:Z#*{_2$*2$2*)/@)\}h*]:+sX2*:X>X<o1}g

```

This calculates π as 2\*sum(k!/(2k+1)!!) with greater and greater precision and at every step prints a bunch of digits from where it left off.

You can try online a modified version that does only 8 (outer loop) iterations and prints 512 digits, or use the java interpreter for the real thing. On my laptop it gets to 16384 digits in about 6 seconds.

Note: this program is very memory-hungry; a better behaved but slightly longer version is:

```
3.1o{T2AZ2*:Z#*1{@2$+@2$*2$2*)/@)1$}g;;sX2*:X>X<o1}g

```

**Explanation:**

```
3.1o              print 3.1
{…1}g             repeat indefinitely
    1YA           push 1, 2 and 10 (Y=2, A=10)
    Z2*:Z         push Z*2 (Z=3 initially) and store back in Z
    #*            calculate 2*10^Z (2 from the formula and 10^Z for precision)
                  this is the term for k=0, and the earlier 1 represents k
    {…}h          do-while
                  at each iteration, the stack contains: terms, k, last-term
        _2$*      copy the previous term and k and multiply them
        2$2*)/    divide the previous number by 2*k+1
                  this is the current term of the series
        @)\       increment k and move it before the current term
                  the current term now serves as the loop condition
                  so the loop terminates when the term becomes 0
    *             multiply k and the last term (0), to get rid of k
    ]:+s          put all the terms in an array, add them and convert to string
                  we obtain an approximation of π*10^Z
    X2*:X         push X*2 (X=1 initially) and store back in X
    >X<o          print X digits starting from the X position

```

# Answer
> 8 votes
# Python, 138 bytes

```
q,r,t,i=1,180,60,2
while 1:u,y=27*i*(i+1)+6,(q*(27*i-12)+5*r)//(5*t);print(y,end="");q,r,t,i=10*q*i*(2*i-1),10*u*(q*(5*i-2)+r-y*t),t*u,i+1

```

Implementation of http://www.cs.ox.ac.uk/jeremy.gibbons/publications/spigot.pdf.

# Answer
> 5 votes
## GolfScript (81 chars)

```
1:i:^3{3i):i*(.(*3*.@*.5*3$27i*12-*+@^*:^5*/.print^*2$5i*2-*--\10*i*2i*(*\10*.}do

```

Online demo (that's much slower than a reasonable desktop, and has trivial code changes to loop a finite number of times).

I have, of course, used the spigot algorithm which I mentioned in an earlier comment, but it took me a while to golf it to my satisfaction. The algorithm as presented in Gibbons' paper is (pseudocode)

```
q = 1; r = 180; t = 60; i = 2
while (true) {
    u = 3*(3*i+1)*(3*i+2)
    y = (q*(27*i-12)+5*r) / (5*t)
    print y
    r += q*(5*i-2)-y*t
    r *= 10*u
    q *= 10*i*(2*i-1)
    t *= u
    i += 1
}

```

The GolfScript above is equivalent to (pseudocode)

```
t = i = q = 1; r = 3
while (true) {
    u = 3*(3*i+1)*(3*i+2)
    i += 1
    r *= u
    t *= u
    y = (q*(27*i-12)+5*r) / (5*t)
    print y
    r -= y*t - q*(5*i-2)
    q *= 10*i*(2*i-1)
    r *= 10
}

```

which saves some characters in the initialisation and in the stack management.

# Answer
> 4 votes
# Pyth - 87 85 bytes

Another translation of http://www.cs.ox.ac.uk/jeremy.gibbons/publications/spigot.pdf. I was gonna do Python but @orlp beat me to it, so I did Pyth. Small enough to fit in a tweet.

```
=H3=d1=bd=Gd#K+**hb27b6~b1=H*HK=d*dKJ/+*-*27b12G*5H*5d=H*T-H-*Jd*-*5b2G=G***GTbtybpkJ

```

It gives output to stdout, albeit in intermittent steps because of the print buffer that comes from setting `end=""` in print. I currently don't print the decimal point since the spec says "consecutive digits". Its the assignments that are killing my score.

```
=H3                     Set H to 3
=d1                     Set d to 1
=bd                     Set b to d which is 1
=Gd                     Set G to d which is 1
#                       Infinte Loop
  K                     Set K to
    +**hb27b6           27*b*(b+1)+6
  ~b1                   b+=1
  =H*HK                 H*=K
  =d*dK                 d*=K
  J                     Set J to
    /                   Integer division
      +*-*27b12G*5H     G*(27*b-12)+5*H
      *5d               5*d
  =H                    Set H to
    *T-H-*Jd*-*5b2G     10*(H-(J*d -G*(5*b-2)))
  =G                    Set G to
    ***GTbtyb           G*10*b*(2*b-1)
  pkJ                   Print J with the end as "", not a newline

```

Try it here. (Note: Since the online interpreter only give completed results, the infinite loop is out, so it only prints first 100 which increases code size. To try out infinite, download the local interpreter.)

## Timing

On my google cloud compute micro instance, according to gnu time it took: `real: 0m2.062s` so it is obviously fast enough.

# Answer
> 3 votes
# Scala, 599 bytes

The code below is a straight port of the Pascal code from Appendix 2 of A Spigot Algorithm for the Digits of Pi. Clearly very little golfing has yet been done. The code does generate 10,000 digits in under 10 seconds with `piSpigot(10000)` and if one has infinite memory can be parameterized to generate many digits, but not infinite. I am not sure if this is meeting the problem constraints so please provide feedback.

```
def piSpigot(n: Int): Unit = {
  val len=10*n/3
  var nines=0
  var predigit=0
  val a=Array.fill(len)(2)
  (1 to n).foreach {_=>
    var q=0
    (1 to n).reverse.foreach{i=>
      var x=10*a(i)+q*i
      a(i)=x%(2*i-1)
      q=x/(2*i-1)
    }
    a(1)=q%10
    q/=10
    if (q==9) {
      nines+=1
    } else if (q==10) {
      print(predigit+1)
      1.to(nines).foreach(_=>print(0))
      predigit=0
      nines=0
    } else {
      print(predigit)
      predigit=q
      if (nines!=0) {
        1.to(nines).foreach(_=>print(9))
        nines=0
      }
    }
  }
  println(predigit)
}
piSpigot(10000)

```

# Answer
> 1 votes
# Befunge-98 (PyFunge), 120 bytes

```
cf*10p'<20p11>00p1+:30p:::*+39**6+:30g39**c-00g*10gv
>:2*1-*00g*a*^
^:p02*g02p01*a*-*g02\+g01*g00-2*5g03,+*86:/*5g02+*5<

```

Try it online!

This is borderline in terms of the timelimit. 10,000 digits take around 11 seconds on my laptop, but I'm sure there must be a "reasonable" PC that could do it faster than that.

However, if you're trying it out on TIO, note that it won't return anything until it hits the 60 second time limit, since the algorithm is designed to keep going forever. By that time you'll have a lot more than 10,000 digits though.

I'm using the Jeremy Gibbons spigot algorithm, which I think is the same as most other answers here. However, note that this relies on the interpreter having arbitrary precision memory cells, and the only implementation I'm aware of that supports that is PyFunge.

**Explanation**

```
cf*10p                     Initialise r to 180.
      '<20p                Initialise t to 60.
           11              Initialise i and q on the stack to 1.

>                          Start of the main loop.
 00p                       Save the current value of q in memory.
    1+:30p                 Increment i and save a copy in memory.
          :::*+39**6+      Calculate u = 27*(i*i+i)+6.
                     :     Make a duplicate, since we'll need two copies later.

       30g39**c-00g*10gv   Calculate y = (q*(27*i-12)+5*r)/(5*t).
              /*5g02+*5<
        ,+*86:             Convert y to a character so we can output it.

*a*-*g02\+g01*g00-2*5g03   Calculate r = 10*u*(q*(i*5-2)+r-y*t)

         p01               Save the updated r.
     *g02                  Calculate t = t*u
  p02                      Save the updated t.

>:2*1-*00g*a*              Calculate q = 10*q*i*(i*2-1).
^:
             ^             Return to the start of the main loop.

```

---
Tags: code-golf, math, pi
---