Recherche de motif

Écrire une fonction recherche_motif qui prend en paramètre une chaîne de caractères motif non vide et une chaîne de caractères texte et qui renvoie la liste des positions de motif dans texte. Si motif n’apparaît pas, la fonction renvoie une liste vide.

Exemples

🐍 Script Python
>>> recherche_motif("ab", "")
[]
>>> recherche_motif("ab", "cdcdcdcd")
[]
>>> recherche_motif("ab", "abracadabra")
[0, 7]
>>> recherche_motif("ab", "abracadabraab")
[0, 7, 11]
Compléter le code ci-dessous

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Ctrl+Clic pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.1280130ldy1,4-]kj/weibmc_:35aPr+ 7=9o[f.gt28;6sSh)(punxv050d0o0K0x0p0c0P0B0s0c0x0P0P0D010K0p0U010406050P0V0r0r0x0z0e040Q0F0c0V0?0F0W050m0}0 11130{0U04051j1c1m0m1j0{0d0p0Y0+0-0/0;0R0p0J0R0c1A0R0K0_050$0q0c0o1v0.0:011z1B1D1B0K1J1L1H0K0z1k0K0R0+160P0U0x0W0;0L011N1x010H0(0o0W0x0r0o1H1*1,1;1P1@1L1`1|0_0a0B0y0z0F0U0F0P0p190W0B0!1(0z0z0o0s2h1c1 0W1k0m1$2u1Z1#1!1I0d210;1D0W1_2e1H1s1u0,1O2E0p2G0W0F2K1H0U2n1k2s2u2Y0|1+2i2M1=2R0z100c0_0B0f2r2$0`2#202(1P2*2,2.0L2;1,2?2s2D012{0x2-040B0v2 2t0{322_0;35370B0h3b312$333h2.0w3l3d3n3f340F2+362.0O3s2@2%1w2`3x2|380C3C3e3F3g3H3z380M3L3u3N3w3y3i0E3T2^3V3p040f0b3!3E2N3W3I0f2:1d2=1n2W1c2K2x0d1#2C3v0s2S1}1k3`1l3^2!3=3005400!2X3U3-0k0_0!0H3l0B3D3o0H0_2n0s0R0o0z4r0o0t0r0F0?4j482t4m3v0^040T3l4E3$0_4y4A4J3M3-4G0g4k4K3-0W0_0K0o0X4Z4P4e1=4G0S0u3s0B4.4l4Q2)0_0P16180p1a4U4;1P0F0_0D4|4(1P4G0G0j4-4/4V4=040p523#3-4 04514C385a1P0r0p0_3*5k064/4:530;4g040n1z1L5e3,5b5d5k5v5f1=5h020c0K0N5j2Y5I5E2`0q0_244%5J540_4I5k5m3g4Y4!4$5%4}0;4*5D335h0i5;3v0W5V045X5-5w014G5$2!5.344M4z0p4B635 4*4,5s5u5u5(65040l5^3V5h5Q2=5S335o5q586f6q3v5y5A1^6l4W0_6k5H6h5L5N0N6B2)5{5}6a5Z5/5#5Y5T5)044N686S335:6F640F0n0_1,0d6K2`664O5~6P600_0G6Y5_6D6^3V4G576#5 6n6o306w4L044Z4#0o6{4R6?7a5b6E6O6T015h0A7d6-5c7l6Q040j6d2Y5t6v6f6h4X6j6,0;6n7A6i7f6p6G0_7k6 6;6s3(6u7w645y6X7K7h7y7F737H5i722t744W6M1_7o6=4H7*7y6W693?646c7O7v7$5b4@172q6:7h5h0I7-6)0U0U1_6+7~6Z6R886_7n8b6|0_0S7@59647y5G5R7Y7!5l8k0_8m7G6$7I7D7M3;7t6g7Q4p0#0V0z1b7T3o4?4^7}7t1c4b0o2u2V8Q3_1t3{2x2A2v0x1K8T0m3`0{8%0#0%0)04.