p.s. a bit nitpick-y but there are 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140 private keys which is a little smaller than 2
256 
I'm trying to understand it but failed. Why not 2^256? They are hashes right? Like strings. All possible combinations. Where is the mistake?

to add to what @nc50lc and to understand "why not all possible combinations" aka 2
256 you have to know that in elliptic curve cryptography we are working with a finite group of points. these points are generated by a generator point on curve that can only generate a sub group (again finite group) of points. in other words G can not generate all points on the curve only some of them.
the number of points this generator point (G) can generate is equal to N so we can only have N private keys not any more (a point is private-key*G). and for bitcoin's curve (sekp256k1) value of N is what i posted above in hexadecimal format.