# Strobogrammatic number

• Difficulty Level : Medium
• Last Updated : 16 Oct, 2019

For the given length n, find all n-length Strobogrammatic numbers.

Strobogrammatic Number is a number whose numeral is rotationally symmetric so that it appears the same when rotated 180 degrees. In other words, Strobogrammatic Number appears the same right-side up and upside down.

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

0 after 180° rotation : (0 → 0)
1 after 180° rotation : (1 → 1)
8 after 180° rotation : (8 → 8)
6 after 180° rotation : (6 → 9)
9 after 180° rotation : (9 → 6)

Examples :

```Input : n = 2
Output : 88  11  96  69

Input : n = 4
Output : 8008 1001 9006 6009 8888 1881 9886 6889 8118 1111
9116 6119 8968 1961 9966 6969 8698 1691 9696 6699
```

Below is the Python3 implementation :

 `# Python program to print all``# Strobogrammatic number of length n`` ` `# strobogrammatic function ``def` `strobogrammatic_num(n):``     ` `    ``result ``=` `numdef(n, n)``    ``return` `result``     ` `# definition function``def` `numdef(n, length):``     ` `    ``if` `n ``=``=` `0``: ``return` `[""]``    ``if` `n ``=``=` `1``: ``return` `[``"1"``, ``"0"``, ``"8"``]``     ` `    ``middles ``=` `numdef(n ``-` `2``, length)``    ``result ``=` `[]``     ` `    ``for` `middle ``in` `middles:``        ``if` `n !``=` `length:            ``            ``result.append(``"0"` `+` `middle ``+` `"0"``)`` ` `        ``result.append(``"8"` `+` `middle ``+` `"8"``)``        ``result.append(``"1"` `+` `middle ``+` `"1"``)``        ``result.append(``"9"` `+` `middle ``+` `"6"``)``        ``result.append(``"6"` `+` `middle ``+` `"9"``)``    ``return` `result`` ` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``     ` `    ``# Print all Strobogrammatic ``    ``# number for n = 3``    ``print``(strobogrammatic_num(``3``))`

Output :

```['818', '111', '916', '619', '808', '101', '906', '609', '888', '181', '986', '689']
```

My Personal Notes arrow_drop_up