For what's possible, pretty much anything that runs on Android is an option. The most likely scenario is communicating via a REST API, which most any language can do. Even if you use SOAP or Protobuf or something, most languages have support, and Python does too.
For a native app, the answer is Kotlin! It's either Java or Kotlin, and Kotlin is much better. Normally it's "ups and downs depending on scenario", but Kotlin is just Java with all the mistakes fixed (that Java can't fix because of compatibility) and only a few other changes.
For non-native apps, maybe someone else will answer. There is indeed React native, but I haven't tried it.