#[05AB1E](https://github.com/Adriandmen/05AB1E/wiki/Commands), <s>15</s> <s>13</s> <s>12</s> 10 [bytes](https://github.com/Adriandmen/05AB1E/wiki/Codepage) ₄4°ŸεW°ö9Q -2 bytes thanks to *@Emigna* -3 bytes thanks to *@Grimy* [Try it online.](https://tio.run/##ARsA5P9vc2FiaWX//@KChDTCsMW4ypJXwrDDtjlR//8) **Explanation:** <!-- language-all: lang-python --> ₄4°Ÿ # Create a list in the range [1000,10000] ʒ # Filter this list by: W # Get the smallest digit in the number (without popping the number itself) ° # Take 10 to the power this digit ö # Convert the number from this base to an integer (in base-10) 9Q # Check if it's equal to 9 - If the smallest digit is \$d=0\$ it will become \$1\$ with the \$10^d\$ (`°`). And the number in base-1 converted to an integer in base-10 (`ö`) would act like a sum of digits. - If the smallest digit is \$d=1\$ it will become \$10\$ with the \$10^d\$ (`°`). And the number in base-10 converted to an integer in base-10 (`ö`) will of course remain the same. - If the smallest digit is \$d=2\$ it will become \$100\$ with the \$10^d\$ (`°`). And the number in base-100 convert to an integer in base-10 (`ö`) would act like a join with `0` in this case (i.e. `2345` becomes `2030405`). - If the smallest digit is \$d=3\$ it will become \$1000\$ with the \$10^d\$ (`°`). And the number in base-100 convert to an integer in base-10 (`ö`) would act like a join with `00` in this case (i.e. `3456` becomes `3004005006`). - ... etc. Smallest digits \$d=[4,9]\$ would act the same as \$d=2\$ and \$d=3\$ above, with \$d-1\$ amount of `0`s in the 'join'. If the smallest digit is \$>0\$ with the given range \$[1000,10000]\$, the resulting number after `°ö` would then be within the range \$[1111,9000000009000000009000000009]\$, so can never be equal to \$9\$. If the result is equal to \$9\$ (`9Q`) it would mean the smallest digit is \$d=0\$, resulting in a base-1 with `°ö`; and the sum of the digits was \$9\$.